iso-传输层

四层传输层
功能 端到端连接通信:
ip协议面向非连接:
tcp协议 保证传输的可靠性和差错恢复机制 面向连接的协议 tcp 是否允许传输 传输的速率控制 差错重传等等
数据序列号标识 顺序到达 电子邮件 下载文件 通过端口号标识服务
面向连接 双向链接 双工 差错校验 顺序传输的标识 每传输一个都要回复一个ack 如果没有重传

udp协议 :udp可以类比为 ip协议 非顺序到达 面向非连接 非顺序传输 尽力传输的 效率高 语音 视频 内网数据传输等
不提供任何可靠的机制 非常有限的差错检测 没有恢复机制


会话的多路复用:

协议的多路复用存在于很多层中 一个协议为多个上层服务 多个上层应用程序提供统一的服务。
就传输层而言很多上层服务用的都是tcp协议例如 ftp http smtp dns 当服务到达传输层的时候 哪些是ftp服务的 那些是http的服务
传输层会做区分 这个就叫多路复用 每层都有多路复用 传输层通过口号来区分这些服务 实现多路复用 0-65535

数据分段 数据段

流控机制 流量控制


网络层 不同的服务的 protocaol是不同的

udp数据段

 

tcp数据段


32bit sequence:序列号
32bit acknowledgment number:确认序列号
4bit header length :4字节报头长度 ack确认连接 syn 建立连接 fin断开连接链接状态位
windows size: 窗口大小
16bit tcp checksum:16位数的校验盒
16bit urgent pointer:紧急指针 做流控的


tcp udp在三层ip协议字段标识是不一样的 通过协议字段的标识实现的 3层的数据帧结构中的protocol会有不同标识
4层传输层 到上层应用是通过端口标识的

tcp建立连接的三次握手

 

 

(1: 我想和你建立连接 连接的初始序列号想从100开始 状态位: 请求连接)

(2 回复: 回复100用101(连续的)    我这里的初始序列号想从300开始  状态位 回复连接 请求连接 ) 32bit acknowledgment number =101

(3:好的 回复301  回复连接

 

流控机制 目标主机在忙 继续发可能要丢包   可以 发送一个停止位给对方

ACK确认的序列号 是你下一个想要接收的序列号

 


一个一个发送一个确认一个效率低
所以有了窗口为 windows size 如果windows size=3 意味着 我连续给你发送三个数据 你给我确认就可以了
滑动窗口

 

posted @ 2019-04-17 18:30  机猿巧合  阅读(326)  评论(0)    收藏  举报