目录
一、基本理论
传输层:实现“端到端”的服务,应用到应用——基于应用级别的互访,就是端口到端口的互发
端口 = port[逻辑端口]
端口范围:0—65535
0——1023端口:知名端口(提前保留出来的端口)
二、TCP协议(传输控制协议)——面向连接
要发送数据时,提前跟对端建立虚拟的连接进行数据交互的通知,使链路做好数据传送的准备。
2.1 报文
五元组——ACL:
S-IP——源IP
D-IP——目标IP
protocol—— 协议号
Source Port——源端口
Destination Port——目的端口
2.2 服务
Telnet服务(端口号:23)——不加密远程登录方式
HTTP服务(端口号:80)——不加密网页服务
HTTPS服务(端口号:443)——加密网页服务
FTP服务(端口号:20/21)
SSH服务(端口号:22)
正式发送数据之前,提前建立好一种虚拟的“点到点”式的连接——单播
2.3 特点
(1)该协议仅适应于单播通信
(2)可以基于建立好的连接,灵活的对接下来的数据传递进行控制
(3)无法很好地满足即时性的业务要求
(4)传递一些文件,稳定性很好
(5)可感知上层数据大小,自动进行分片处理在本地进行缓存,网络层不做分片
2.4 连接(收发同时)
SYN=1(只在前两次报文中置位为1——请求建立连接),ACK=1
“我要跟你建立连接!!!”
“我收到你的报文(ack),我也要和你建立连接”
“好的,”
连接建立完毕之前不会传递数据
2.5 确认机制
(1)三次握手中,小ack = 对方seq+1
(2)数据传输时,小ack = 对方传递的数据的最大值+1
2.6 重传机制
服务器将PC发来的数据包进行排序,中间如果少一个,将会在本地缓存所缺少位置的后面的数据。
如果服务器一个都没收到,会用到超时重传机制(利用RTTS算法——加权的平均往返时间)
2.7 流量控制
具有发送缓存和接收缓存
红色箭头:
确认seq=2,下次发从3开始开始发,window调整为3,后续PC就改为发三个数据包
2.8 四次挥手
“分开吧”
“好的,分开吧”——服务器端先进行确认请求,再发起请求
“好的”
三、UDP协议(用户数据包协议)——面向无连接的协议
要发送数据之前,对端不知我方要发送数据,数据发送出去,是否丢包,对端是否收到一概不知。
3.1 服务
DNS服务(端口号:53)
DHCP协议
3.2 特点
(1)保证数据进行传输,但UDP无法对传递的数据进行控制,若想控制,需借用应用层实现
(2)可以很好地满足即时性的要求(视频,语音通话)
(3)对上层传输数据全盘接收,数据过大,UDP无分片机制,丢到网络层进行分片,因此其适用于相对较小的流量
3.3 传输特点