传输层协议,简单易懂的知识点

215 阅读5分钟

TCP/IP协议栈

TCP/IP特性

  1. 工作在传输层
  1. 面向连接协议
  1. 全双工协议
  1. 半关闭
  1. 错误检查
  1. 将数据打包成段,排序
  1. 确认机制
  1. 数据恢复,重传
  1. 流量控制,滑动窗口

    tcp要先建立连接,然后发送数据

    端口号作用 :确认进程

端口号

三类

1.1.规定好的 知名难过的端口号 80 443 人为规定

2.系统随机分配(客户端去访问服务端 系统会自动随机分配一个端口号给你)

3.人类自由使用(大神新创造一个程序,规定一个端口号)

去访问服务器

下载文件(ftp,tftp,nfs) , 访问网页(apche nginx tomcat ISIS)

安装软件

提供服务

TCP协议

  • TCP是面向连接的,可靠的进程到进程通信的协议
  • TCP提供全双工服务,即数据可在同一时间双向传输
  • TCP报文段

TCP将若干个字字节构成一个分组,叫报文段(Segment)

TCP报文封装在IP数据包中

1657700107501.jpg

源端口、目标端口:

计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标端口,就可以知道是哪两个进程需要通信。源端口、目标端口是用16位表示的,可推算计算机的端口个数为2^16个,即 65536 (0-65535)

序列号:发送数据时候给每个数据段分上一个编号,这个编号可以无限使用的,用完了再从0开始无限循环。

确认号(ask):

A 1 B 1+1

A确认号0 B 确认号0+1

B 回给A 确认号 0+1 就代表没问题

数据偏移/首部长度:TCP报文的首部长度

控制位

决定 A 和 B 目前处于什么状态 11种了解

ACK FIN SYN

tcp A 和 B 目前处于什么状态

A和 B 请求建立连接状态 syn=1 同步位

A 和 B 已经建立连接状态 ACK=1

A 和 B 已经断开连接状态 fin=1

ACK 已建立连接

URG(紧急位):包含紧急数据,如果紧急位为1,代表紧急优先发送。

PST(重置位):当A和B通信有问题需要重新连接一下

PSH(急切位):数据到急切位时可以不交给应用程序

SYN(同步位):建立连接时使用,来同步序号的。 当SYN=1, ACK=1时表示连接,SYN=1 ,说明这是请求建立连接或同意建立连接的报文。(请求建立连接)

FIN(断开位):表示终端关闭连接,如果FIN=1,就是告诉对方可以断开连接了(断开连接)

窗口大小:表示本报文段的确认号开始允许对方发送的数据量。

校验和:提供额外的可靠性紧急指针:标志紧急数据在数据字段的位置

*选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)4-20=40字节

TCP建立连接的过程被称为三次握手

image.png 三次握手

1.PC1发送SYN报文(Seq=x,SYN=1)(Seq=x是PC1的序号位是x,第一个序号位一般是随机的,SYN=1请求连接)

2.PC2发送SYN+ACK报文(Seq=y,Ack=x+1,SYN=1,ACK=1)(Seq=y是PC2的序列号,Ack=x+1是请求PC1发送x+1的编号,SYN=1,ACK=1是请求建立连接,PC2同意连接)

3.发送ACK报文(Seq=x+1,ACK=y+1,ACK=1)(1.会发送一个x+1的报文2.希望PC2下次发送y+1序号报文,ACK=1,建立连接关系)

TCP断开连接的四次挥手

有限状态机

  1. CLOSED 没有任何连接状态

  2. LISTEN 侦听状态,等待来自远方TCP端口的连接请求

  3. SYN-SENT 在发送连接请求后,等待对方确认

  4. SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认

  5. ESTABLISHED 代表传输连接建立,双方进入数据传送状态

  6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认

  7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求

  8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消失

  9. CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认

  10. LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

  11. CLOSING 双方同时尝试关闭传输连接,等待对方确认

客户端先发送一个FIN给服务端,自己进入FIN_WAIT_1

状态,这时等待接收服务端报文,该报文会有三种可

能:

  • 只有服务端的ACK
  • 只有服务端的FIN
  • 基于服务端的ACK,又有FIN

UDP 特性 工作在传输层

提供不可靠的网络访问

非面向连接协议

有限的错误检查

传输性能高

无数据恢复特性

udp和tcp的区别

TCP:可靠, 接不到可以重新传输 速度慢 面向连接 面向字节传输

UDP:不可靠, 接不到不会重新传输 速度快 无连接 面向报文传输

总结

这节课我们学习了TCP/IP的特性,tcp协议,三次握手和四次挥手以及有限机状态