计算机网络原理-传输层协议介绍

TCP(Transmission Control Protocol)协议介绍:传输控制协议

  1. TCP是面向连接的、可靠的进程到进程通信的协议
  2. TCP提供全双工服务,即数据可在同一时间双向传输
  3. TCP报文段
    1. TCP将若干个字节构成一个分组,叫报文段(Segment)
    2. TCP报文段封装在IP数据包中

 


TCP报文段首部格式(20-60字节): 

源端口号和目标端口号都是进程的端口号

序号:TCP从进程接收数据的字节,会存储在发送的缓存中,同时每一个字节进行编号。

编号不一定从0开始,首字节的编号是一个随机数(32位无符号的值)。

发送和接收这两种不同方向的编号是互相独立的。

当每个字节的编号完成后,TCP会给报文段指定一个“序号”,是报文段首字节的编号,也是唯一标识。

当数据传输到目的地之后,接收端会按照这个序号把数据重新排列,保证数据的准确性。

确认号:对发送端的确认信息,用来告诉发送端这个序号之前的数据段已经接收完成,如果确认号是X,则说明X-1个数据段已经完成发送。

首部长度:一般20个字节,选项可以最大使首部长度扩大到60字节。

保留:目前未被使用,只做未来扩展功能使用。

控制位:很重要的作用,TCP的连接、传输、断开,都受这六个控制位指令的指挥。

  1. URG:紧急指针有效位
  2. ACK:确认序号有效位,只有ACK=1时,确认号才有效,否则无效。
  3. PSH:优先级标志位,PSH=1时,要求接收方尽快将数据段送达应用层。
  4. RST:重新连接标志位,RST=1时,通知重新建立该TCP连接。
  5. SYN:同步序号位,TCP建立连接时,SYN=1。
  6. FIN:发送端完成任务位,任务完成时,TCP连接需要断开,发送端标记FIN=1,接收端就会关闭TCP连接。

窗口大小:用于说明本地可接收数据段的数目,这个值是可变的,网络通畅时,窗口会变大加快传输速率,网络不稳定时,窗口会减小来保证数据的可靠性传输。流量控制机制就是依靠变化窗口来实现。

校验和:做差错控制,与IP的校验和不同,TCP的校验和的计算包括TCP首部、数据和其他填充字节。在发送时,发送端计算校验和,接收端也计算校验和对比,若不对应,则接收端丢弃该数据,一般此时会要求重新传输该报文。

紧急指针:一般发生的场景:一个数据包因各种原因多次重传,导致后续传输被阻塞或等待,此时发送端会标记URG=1紧急指针标记了紧急传输的报文的序号。

选项:长度可变


TCP的连接

IP协议是一个无连接协议,TCP协议是一个面向连接的协议(虚拟连接)。

TCP报文段封装成为IP数据包后,可以走不同的路径到达终点(多线程),因此接收到的IP数据包可能不按照顺序到达,甚至可能损坏或丢失。如果TCP未接收到对应顺序的报文段,则会保留后面的,等待前面的报文段到达,损坏或丢失的会重传,目的是保障TCP报文段是完整,有序的。

TCP连接三次握手的过程:

  1. 发送端建立连接:发送SYN报文(序号Seq=x,SYN=1)
  2. 接收端发送接收反馈:发送SYN+ACK报文(Seq=y,Ack(确认号)=x+1,SYN=1,ACK=1)
  3. 发送端继续传后一个,同时附上反馈的反馈:发送ACK报文(Seq=x+1,Ack=y+1,ACK=1)

TCP关闭连接的四次挥手过程(中间有半关闭状态,最后一次反馈一定不在TCP连接中,可以通知消息送达):

  1. 发送端关闭发送通道的请求:发送FIN+ACK报文(Seq=x,Ack=y+1,FIN=1,ACK=1)
  2. 接收端发送请求的反馈:发送ACK报文(Seq=y+1,Ack=x+1,ACK=1)
  3. 接收端关闭反馈通道的请求:发送FIN+ACK报文(FIN=1,ACK=1)
  4. 发送端发送请求的反馈:发送ACK报文(ACK=1)

 

UDP(User Datagram Protocol)协议:用户数据协议

无连接的不可靠的传输协议

UDP只关心是否发送,不关心是否送达,UDP的长度不是很大,因此报文较小,发送端和接收端的交互会很少。速度更快,效率更高。UDP的校验和是UDP提供的唯一的可靠机制。

应用场景主要是:电话、视频、聊天等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值