OSI七层模型和TCP/IP四层网络模型
写在文前,本篇文章是在学习过程抄录的笔记,需要更详细的内容可以在微信搜索javaguide公众号获取。
1、OSI划分
- 七层划分:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
- 五层划分:应用层、传输层、网络层、数据链路层、物理层
- 四层划分:应用层、传输层、网络层、网络接口层
1.1 OSI七层模型
1.2 设备
物理层:网卡、网线、集线器、中继器、调制解调器
数据链路层:网桥、交换机
网络层:路由器
2、各层结构与功能简述
2.1 物理层
-
物理层所传送的数据单位是比特。
-
物理层的作用是实现相邻计算机结点之间的比特流透明传送,尽可能屏蔽具有传输介质和物理设备的差异,使数据链路层不必考虑网络传输的介质是什么。
2.2 数据链路层
- 两个相邻结点传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻结点的链路上传送帧。
- 每一帧包括数据和必要的控制信息【同步信息、地址信息、差错控制等】
2.3 网络层
- 网络层的任务是选择合适的网间路由和交换结点,确保数据及时传送。
- 网络层使用IP协议,因此分组也叫IP数据报。
2.4 运输层
- 运输层的主要任务是负责向两台主机进程之间的通信提供通用的数据传输服务。
- 传输控制协议TCP和用户数据协议UDP。
2.5 应用层
- 应用层的任务是通过应用进程间的交互来完成特定网络应用。
- 域名系统DNS、超文本传输协议HTTP、简单邮件传输协议SMTP。
3、面试题
3.1 三次握手:SYN(建立联机)、seq(序列号)、ack(确认号)
为什么三次握手
三次握手的目的是建立可靠的通信信道,确认自己与对方的发送接收正常
- 第一次握手:客户端-服务端
- Service确认对方发送正常,自己接收正常
- 第二次握手:服务端-客户端
- Client确认自己发送、接收正常,对方发送接收正常;Service确认对方发送正常,自己接收正常
- 第三次握手:客户端-服务端
- Client确认自己发送、接收正常,对方发送、接收正常;Service确认自己发送、接收正常,对方发送、接收正常,
第二次握手的ack与syn
- 发送ack是为了告诉客户端我接受到的就是你发送的信号
- 发送syn是为了建立并确认服务端到客户端的通信
最后一次客户端发送确认
主要为了防止失效的连接请求突然重新传送到服务器,从而产生错