传输层 2 —— TCP /UDP

本文详细介绍了TCP和UDP的区别与特点。UDP是无连接、不可靠的,适用于多媒体通信,其首部仅8字节。TCP则是面向连接的,提供可靠传输服务,通过序列号、确认号、窗口等机制实现流量控制和拥塞避免。TCP连接管理包括三次握手建立连接和四次挥手释放连接。
摘要由CSDN通过智能技术生成

目录

UDP

UDP的主要特点

UDP的首部格式

TCP

TCP 概述

TCP的首部格式

TCP的连接

TCP的主要特点

    TCP如何实现可靠传输?

    TCP 如何实现流量控制?

    TCP 如何避免网络拥塞?

 TCP的传输连接管理      

建立连接

TCP的连接释放


UDP

UDP的主要特点

  1. UDP 是无连接的
  2. UDP 使用最多交付,即不保证可靠交付,同时也不使用拥塞控制
  3. UDP 是面向报文的。UDP没有拥塞控制,很适合多媒体的要求
  4. UDP 支持1对1、1对多、多对1和多对多的交互通信
  5. UDP 的头部开销小,只有 8个字节。

UDP的首部格式

UDP 的首部共20个字节,其中12个是伪首部(网络层的的一些数据)

检验和:需要伪首部和数据的校验。

TCP

传输控制协议 TCP

TCP 概述

  1. TCP是面向连接的传输协议
  2. 每条TCP连接只能有两个端点(endpoint),每条TCP连接只能是点对点的(1对1的)
  3. TCP提供可靠交付的服务
  4. TCP提供全双工通信
  5. 面向字节流 把文件从一个计算机传递到另一个计算机。(文件分成多段,先读到TCP缓存,然后从缓存里在分段读取发送。目标计算机拿到后先在缓存,然后从缓存拿到数据再进行组装成文件。每次读取都是面向字节的,读,存,取 ,发的数据大小没有关系。)

TCP的首部格式

序号: seq 指发送的数据段的第一个字节在整个文件里的字节的位置。eg: 1234 为一个数据段序号为1;56为一个数据段序号为5;……

确认号:ack 指收到数据包后给发送的计算机确认信息,确认下一个应该发送的数据包在文件里的字节;eg :1234收到后会给发送者下次该发5,确认号为5;56收到后会给发送者下次该发7,确认号为7;

数据偏移: 1个字节。中的一个1代表4个字节。最多15*4 = 60 ;60 - 20 = 40 ;选项中的可变长度最多为40字节。

保留 :无用

URG:优先标记位。发送的缓存里的优先级的指令,可以不在缓存里排队。

ACK:确认标记位。用于标记确认号有无效。1有效

SYN:同步时用到。发起会话的数据包。(发送和同意发送)1时为主动发起连接是数据包

PSH:同 URG 标记位。接收缓存里的优先级的指令,可以不在缓存里排队。

RST:异常中断。需重新连接

FIN:释放连接。

窗口:得到对方发送和接收时的缓存大小,进行同步

检验和:校验范围首部和数据两部分。同UDP的校验,协议号为7;

紧急指针:标记紧急数据的尾部位置。(从0 到标记)

 

TCP的连接

 TCP 是点到点的通信(iP地址+端口 叫套接字socket)。

套接字socket = iP地址+端口 。

每条TCP连接唯一的被通信两端的两个端点(即两个套接字所确定) 即:TCP连接   = {socket1 ,socket2} = { (IP1:port1),(IP2:port2) }

TCP的主要特点

    TCP如何实现可靠传输?

        停止等待协议。没有收到回复就会再次发送重复数据。ARQ(自动重传机请求)。

        优点:简单。缺点:信道利用率太低。

        如和提高信道利用:

       1、 流水线传输。发送方连续发送多个数据包,不等待收到回复后在发送后面的数据。利用发送窗口发送数据。

       2、累计确认:确定连续收到包的最后一个数据加1(应该发送那个数据了)。

 一 、以字节为单位的滑动窗口

         丢失时会选择性确认,只发送丢失的数据段。     

         超时重传时间的选择。取平均往返时间,因为受到网速带宽的影响。

    TCP 如何实现流量控制?

          通过接收端告诉发送端发送窗口的大小来控制。

          当接收端收到的数据快要充满缓存是,接收端会告诉发送方减缓发送。当处理完全时也会处理,告知快速发送。

    TCP 如何避免网络拥塞?

        发送方维护一个拥塞窗口。(开始慢的计算原则)

        慢开始和拥塞避免算法(先是值数增长达到16后,在线性增长,丢包后回减少发包,减少到丢失前的一半)

        快速重传:发现丢包后立即确认(发送三次),重传丢失的数据包。

        快恢复:出现拥塞后不回复到指数增长前,回到线性增长位置

 TCP的传输连接管理      

传输的三个阶段: 建立连接、数据传输和连接释放。

TCP连接的建立都是采用客户服务方式。(客户端Client 主动连接服务器 server)

建立连接

 三次握手

 

第三次确认:非同步信息了。为了防止服务器等待时间过长而造成的资源浪费。

三次握手建立TCP连接的状态

1、客户端发送请求连接后的状态为:SYN - SENT

2、服务接收到连接请求后然后发送收到的确认,然后的状态变更为SYN-RCVD。 (由LISTEN转变过来的).

3、客户端收到服务的请求后的状态后,再发送确认(非同步信息了),客户端的状态变为ESTAB -LISHED .

4、服务接收到客户端的再次请求后状态变更为ESTAB -LISHE;

都变成ESTAB -LISHE状态后,然后进行数据传输。

TCP的连接释放

客户端最后等待2MSL(4分钟):原因是如果最后一个包丢失,服务会一直处于LAST-ACK的状态。延迟等待后,当包丢失后服务再次发送是还可以响应。

 

参考 :《韩立刚老师主讲 计算机网络》视频笔记。仅供自己复习参考使用,如有问题欢迎指出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值