计算机网络

TCP与UDP的对比
(1)连接方面,TCP需要三次握手而UDP并不需要
(2)TCP有完善的拥塞控制机制,UDP没有
(3)UDP可以有无连接状态
(4)UDP分组首部开销更小

可靠性协议以及机制

检验和 用于检测分组中是否出现比特错误
定时器 用于超时/重传分组
序号 检测出一个分组的冗余副本
确认 通知发送方分组已经接收
否定确定 接收方通知发送方分组未能接收
窗口 发送方也被允许限制仅发送那些序号落在一个指定范围的分组

TCP/UDP
多路复用/多路分解

TCP的流量控制:
流量控制是一个速度匹配的服务,即发送方的发送速率与接收方的读取速率相匹配。

三次握手:
(1)每次ACK针对###对方###发过来的Seq进行加一并返回给对方。
(2)为啥是三次是三次握手:为了防止已经失效的连接请求重新打到了服务端。
(3)为啥需要初始化序列号:

四次握手:
(1)客户发送关闭请求
(2)服务端针对这个关闭连接的请求进行ACK
(3)服务端向客户端发送关闭信息
(4)客户端针针对服务端发送来的关闭信息进行ACK

四次握手的状态:
FIN_WAIT_1:
客户端发送关闭连接请求之后即进入FIN_WAIT_1状态,但客户端此时仍然可以接收消息。
FIN_WAIT_2:
客户端接收到服务端的ACK信息随即进入FIN_WAIT_2状态,并等待服务端发送FIN消息。
CLOSE_WAIT:
这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以 close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。(被动方)
LAST_ACK:
它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。(被动方)
TIME_WAIT:
表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FINWAIT1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。(主动方)
TIME_WAIT存在的意义是防止最后一次ACK对方没有接收到需要进行重传。
CLOSED:
表示连接中断。

在四次挥手过程中,TCP的FIN和ACK消息可以是异步的,因为在接收到关闭连###接请求之后可以先把手头的数据处理完再进行ACK确认。

拥塞控制原理
通过超时或者3次冗余确认可被认为是网络拥塞的一个迹象。TCP会相应的减小其窗口长度。
2种控制方法:
(1)端到端拥塞控制
(2)网络辅助的拥塞控制:通过网络层构建(即路由器)

TCP拥塞控制:
首先看一下TCP连接的每一端的构成:接收缓存、一个发送缓存、几个变量。运行在发送方的TCP拥塞控制机制还需要跟踪一个额外的变量:拥塞窗口(用于控制发送速率)。

控制算法:
该算法主要包括三个部分:慢启动、拥塞避免、快速恢复;
慢启动和拥塞避免是TCP的强制的部分。
慢启动:
在慢启动阶段,TCP的发送速率是以指数进行增长。如果出现丢包则重新启动慢启动;如果速率进入慢启动阈值则进入拥塞避免方式;如果监测到三个冗余ACK,此时TCP执行快速重传并进入快速恢复 状态。
拥塞避免:
更加保守的增加CWND的值:一种通用的方式是每当收到一个ACK确认则增加CWND的值。当出现丢包或者三次冗余ACK的时候则CWND的值直接变成原来的一半,接下来进入快速恢复状态。
快速恢复:
在TCP处于快速恢复状态时候:每收到一个冗余确认则CWND的值加1。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 7,380评论 0 2
  • 一、基础概念 服务对象:进程 功能:逻辑通讯 载体:报文段 工作环境:端系统 运输层协议  TCP:为进程提供可靠...
    IT白阅读 3,169评论 0 0
  • 【计算机网络】传输层 传输层协议概述 传输层协议为运行在不同host上的进程提供了一种逻辑通信机制。使得端到端不需...
    666真666阅读 6,466评论 0 4
  • 本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下--应用层2.计算机网络自顶向下--运输层3....
    牛富贵儿阅读 8,179评论 0 3
  • 计算机网络七层模型中,传输层有两个重要的协议:(1)用户数据报协议UDP (User Datagram Proto...
    Q南南南Q阅读 5,709评论 0 3

友情链接更多精彩内容