快速到达看这里-->
计算机网络的模型
- IOS定义的OSI七层模型
- 应用层 :文件传输,电子邮件,文件服务等
- 表示层 :数据格式化,代码转换,数据加密
- 会话层:解除或者简历与别的接点的连接
- 传输层:提供端对端接口
- 网络层:为数据包选择路由
- 数据链路层:帧传输与错误检查
- 物理层:以比特流进行传输
进程间数据传输过程
- TCP/IP的四层模型
- 应用层:包含应用层,表示层,会话层
- 传输层
- 网络层
- 链路层:包括数据链路层,物理层
四层模型与七层模型的对应关系
- 常用的五层模型
- 应用层
- 传输层
- 网络层
- 数据链路层
- 物理层
UDP 和 TCP 的特点
- 用户数据报协议 UDP(User Datagram Protocol)是无连接的,
- 面向报文传输,对于应用程序传下来的报文不合并也不拆分,只是添加的交互通信。
- 吞吐量之受限于数据生成速率
- 首部字段只有 8 个字节,包括源端口、目的端口、长度、检验和。12 字节的伪首部是为了计算检验和临时添加的。
- 尽最大努力交付,不保证可靠交付
- 传输控制协议 TCP(Transmission Control Protocol)是面制,提供全双工通信,面向字节流(把应用层传下来的报文块),每一条 TCP 连接只能是点对点的(一对一)。首部20字节
TCP与UDP的区别
- TCP面向连接,UDP面向无连接
- TCP可靠(确定+重传),UDP不可靠
- TCP利用序列号保证最终有序,UDP无序
- TCP速度慢,UDP速度快
- TCP重量级(头部20字节),UDP轻量级(头部8字节)
一个网络数据包包含哪些部分
网络数据包一般包含头部和数据两部分。
- 经过传输层(TCP协议),添加TCP头部
- 经过网络层(IP协议),添加IP头部
- 经过数据链路层(ARP),添加MAC头部,添加帧校验序列和起始帧分界符
三次挥手和四次握手
TCP的三次握手
说明:
- ACK:确认序号标志
- SYN :同步序号,用于建立连接
- seq:发送方序号
- ack:确认号
假设 A 为客户端,B 为服务器端。
- 首先 B 处于 LISTEN(监听)状态,等待客户的连接请求。
- A 向 B 发送连接请求报文,SYN=1、,选择一个初始的序号 x。
- B 收到连接请求报文,如果同意建立连接,则向 A 发送连接确认报文,SYN=1,ACK=1,确认号为 x+1,同时
也选择一个初始的序号 y。 - A 收到 B 的连接确认报文后,还要向 B 发出确认,确认号为 y+1,序号为 x+1。
- B 收到 A 的确认后,连接建立。
通俗的说法:
- a告诉b同步标志SYN = 1,我的位置是seq = x
- b回复a收到你的SYN