4.传输层

传输层协议有哪些

TCP / UDP

TCP/UDP 比较&使用场景

协议 是否需要建立会话 分段传输 流量控制 可靠传输 例子
TCP 建立会话 需要将要传输的文件分段传输 流量控制 可靠传输 视频通话,QQ传文件,访问WEB,访问FTP
UDP 不需要建立会话

不分段

(一个包就能完成通信)

不需要流量控制 不可靠传输 发QQ信息(也是UDP包反馈收到,否则消息发送失败),DNS解析,多播组播(收直播)

TCP传的是

UDP传的是报文

传输层协议 和 应用层协议 之间的关系:

传输层:TCP协议 UDP协议

应用层:http https ftp smtp等协议

传输层:通过不同的端口号,来区分不同的应用层协议

http = TCP + 80端口

https = TCP + 443端口

FTP = TCP +21

SMTP = TCP +25

应用层协议和传输层协议之间的关系 


- 服务使用TCP或UDP的端口侦听客户端请求 
- 客户端使用IP地址定位服务器  ; 使用目标端口,定位服务 
- 可以在服务器网卡上设置只开放必要的端口,实现服务器网络安全(不让远程连接,就不开3389)(只开80端口,别的都关)

网络层 与 传输层 的不同

网络层:主机与主机的通信

传输层:进程与进程的通信

浏览器访问,会话都有啥

不同网页窗口,源端口不冲突,目标端口80

例:浏览器1 5997端口 访问 80端口,回来的也是给 5997端口 

(有可能一个页面 播放2个视频,连2个不同的服务器  则2个会话)


TCP:点到点  --什么是socket

socket == IP地址+ 端口

TCP协议如何实现可靠传输?

停止等待协议:没有确认,我就等待

只要你没告诉我你收到了,我就认为你没收到。

功能实现了,但是实际上,信道利用率太低!

滑动窗口技术 保证流水线传输

得到确认,移动

累积确认

124发送到了,3丢了,这种情况下:B确认 收到了2(1已经收到了)

五层传输流程

  • 应用层:给出数据
  • 传输层:切割分段,加首部(包括源端口、目的端口序列号seq、确认号ackSYN ACK 窗口信息等),首部+ 切割的数据  == 【段】
  • 网络层:得到传输层的【段】,加上ip首部(包括源ip地址、目标ip地址、协议等), ip首部 + 【段】 == 【包】
  • 数据链路层:得到【包】 加 源mac地址 目标mac地址,帧头、帧尾、 FCS  得到 【帧】
  • 物理层:01010101

(开心啊!!!!)

TCP首部

注:确 == 确认号、序 == 序号、源 == 源端口、目 == 目标端口

ACK == 0代表确认号无效,1代表有效

SYN == 同步标记。  SYN == 1 建立会话请求 ,XP扔过去。WEB站点同意,SYN = 1 扔回来。

真实情况下,TCP如何实现可靠传输

以字节byte为单位的滑动窗口技术

确认号7

选择性确认 s ack :可以只发丢失的

拥塞控制

路由器需要处理的数据包太多,忙不过来,丢包了

刚开始是 拥塞窗口 = 1(单位:报文段),然后2的指数增加;

一旦达到慢开始门限,增长方式变为 ++;

若出现网络拥塞:拥塞窗口 = 1;慢开始门限 /= 2;

快重传:

一般情况:如果已知3丢了,还需要收到4 5,再发送确认.

快重传:已知3丢了,应该立即连发3个确认,让你重传3 4 5。

快恢复(与快重传 配套)

刚开始是 拥塞窗口 = 1(单位:报文段),然后2的指数增加;

一旦达到慢开始门限,增长方式变为 ++;

若收到3个重复的确认(快重传算法):新慢开始门限 = current拥塞窗口 / 2;拥塞窗口 = 新慢开始门限; 开始++;

TCP连接的建立,三次握手

传输连接有三个阶段,即:建立连接、数据传送、释放连接。

采用的都是 client/server 方式

SYN 只有前两次,两次已经同步好了。

第三次 没有SYN了,只有ACK,是再次确认。

若没有第三次确认

三次握手:“为了防止已失效的连接请求报文段(第一份)突然又传送到了服务端,因而产生错误”

三次握手时,各自状态

连接释放

发布了123 篇原创文章 · 获赞 1 · 访问量 5425

猜你喜欢

转载自blog.csdn.net/bijingrui/article/details/105024722