首页 > 技术文章 > TCP/UDP

zjm6159 2021-01-22 09:56 原文

传输层常用的协议

(1).TCP(传输控制协议 Transmission Control Protocol);
(2).UDP(用户数据包协议 User Datagram Protocol)。


端口号的作用

POP 110

 (1).就像找一栋楼的房间,端口号就是房间号;
(2).源端口 一般是 随机的,目的端口 一般是固定的,0-1023是知名端口,动态端口号的范围是1024-65535。


五元组

协议,源IP,源端口号,目标IP,目标端口号
TCP,192.168.1.1:80,192.168.1.2:5035


UDP的报文

 (1).UDP头部仅有8个字节,传输时没有确认机制
(2).Length:UDP的长度是指UDP的头部和UDP的数据。16位
(3).Checksun:UDP的校验和,不只是校验头部,也校验数据


UDP与TCP传输机制的比较

UDP
(1).面向无连接(没有确定对端是否存在就直接发送)
(2).基于数据报 不可靠
(3).支持多播和广播(适合传输语音流和视频流)
TCP
(1).面向连接 三次握手
(2).数据流:可靠:对发送出去的数据需要确认,应用层交给TCP的数据 大了会切小 小了会积攒大
(3).只支持单播

 


TCP的报文

Source Port:源主机应用程序实用的端口号


TCP的三次握手和四次挥手

通过三次握手建立可靠的连接(双向的连接。第二次握手合称为:ACK+SYN报文)
(1).A向B发送SYN报文,序号为a;
(2).B收到A的报文,向A回复ACK确认报文,序号为a+1;同时向A发送SYN报文,序号为b;
(3).A收到B的报文,向B回复ACK确认报文,序号为b+1.

TCP的四次挥手

(1).A向B发送清秋结束的FIN报文,序号为a;
(2).B向A发送ACK确认报文,序号为a+1,ACK还有一个序列号是b;
(3).B向A发送请求结束的FIN报文,序号为b;
(4).A向B发送请求确认的ACK报文,序号为b+1.ACK还有一个序列号位a.
注:报文的序列号 与ACK有关


ACK报文的作用

 对前面的报文进行确认


TCP报文中的Windows

决定TCP报文的数量,被称为滑动窗口

 理论上滑动窗口的机制
(1).主机A向服务器发送了四个报文,服务器A一次只能缓存三个,多余的会丢弃,将缓存的数据发给上层APP;
(2).服务器向主机发送收到的报文3073和窗口可以缓存的报文3072;
(3).之后主机A只会向服务器发送可以缓存的报文数量;
(4).服务器向主机A确认的报文中会加上已经收到报文数量的总合。

实际上滑动窗口的机制

(1).当缓存的数据发送给上层APP时,多余的剩余空间会多出来;
(2).服务器端不会等缓存全部清空才发送确认信息,而是实时发送确认ACK。

 

TCP的确认机制


(1).发送三个数据段确认;

(2).如果中间数据丢失,服务器端会对没有收到的数据段进行单独的确认。


IP路由基础中关键的四个参数

源地址、掩码、下一跳、出端口

开销越小越优

 

UDP

适用于对传输的可靠性要求不高,对传输速度和延迟要求较高的应用程序;如语音和视频。

UDP不能保证数据传输的可靠性,也无法避免接收到重复的数据情况。

 

路由选择的原理

(1).最长匹配(掩码最长);   1.1.1.1/24  1.1.1/32
(2).优先级越小越优;                priority 100 120
(3).度量值越小越优(开销 cost);cost=100 cost=10
最长匹配 > 优先级 > 度量值
以上三条相同,则进行等价的负载分担




 

推荐阅读