开始
我们在地址栏中输入www.baidu.com发生了什么?
流程:
- 域名解析
- 发起TCP3次握手
- 建立TCP连接后发起http请求
- 服务器响应请求,返回结果
- 浏览器获取到响应,构建DOM
网络
它在哪?
它理想的样子:
每一层的作用:
现实中实际使用的TCP/IP协议簇的样子–五层模型:
问题1 为什么TCP/IP协议要进行分层,有哪些好处以及坏处?
A:…
模块通信
从模块通信再看地址栏中输入www.baidu.com
1
2
3
4
5
6
7
8
软件通信方式大致分为2类:电路交换和分组交换。TCP/IP 采用的是分组交换协议。
1. 用户在地址栏中输入地址
2. 本机请求DNS域名服务器获取到对应IP(DNS工作机制--逐渐往上层查询)
3. 在运输层中选择何种协议进行数据传输,并且发送端口号(识别应用)、目标端口号记录在TCP首部或者UDP首部。并将数据进行切分为数据段。
4. 在网络层进行IP寻址、路由(寻径)、IP的分包和组包,组包过程中会填充源IP地址和目标地址
5. 数据链路层 以太网帧格式中会填充源MAC地址和目的MAC地址(帧即是01的数据集合)
6. 物理层将帧拆解通过光电信号进行传输
进阶
运输层
TCP
特点:可以实现全双工的并且是可靠的数据传输。
实现手段:校验和、序列号、确认应答(ACK)、重发控制、连接管理、窗口控制。
1.连接管理中三次握手四次挥手。
问题2: 建立连接是三次,断开连接却是四次?
2.重发控制中的重发时间的确认。
1
2
3
理想:确认应答一定能在n ms中返回。那么这个n就是。
实际:时间长短会随着数据包途径的网络情况不同而变化。
计算方式:计算往返时间以及其偏差相加重发超时时间,就是比这个总和要稍微大一点的值。
3.TCP的拥塞控制。
1
UDP
特点:不提供复杂的控制机制,利用IP提供面向无连接的通信服务。
网络层
路由
数据链路层
共享介质网络
特点:多个设备共享一个通信介质的一种网络。
介质访问控制方式:
1、争用方式。采用先到先得的方式占用信道发送数据,如果多站同时发送帧,则会产生冲突现象。
解决: CSMA/CD 方式,发送数据帧前检查信道,没有数据流动则任何站都可以发送数据,如果产生冲突,则立刻释放载波信道,放弃一段随机时间后再重新争用介质,重新发送。
2、令牌传递方式
特点:令牌传递方式是沿着令牌环发送一种叫做令牌的特殊报文,只有获得了令牌才能发送数据。
解决了哪些问题:1、不会产生冲突 2、每个站都有通过平等循环获得令牌的机会。
问题: 在网络拥堵的情况下数据链路的利用率达不到100%。
非共享介质网络
特点:不共享介质,对介质采用专用的一种传输控制方式,在此种方式下,网络的每个站直连交换机,由交换机负责转发数据帧。
问题:一旦交换机出问题,与之相连的计算机都将无法通信。
以太网的连接形式
发展历程: 由多台终端使用同一根同轴电缆的共享介质行的连接方式 => 一般采用终端与交换机之间独占电缆的方式实现以太网通信。
问题
问题1:为什么TCP/IP协议要进行分层,有哪些好处以及坏处?
1
2
3
4
5
6
7
8
优势:
1. 每一层都是独立的,即是某些层发生变化,也不会波及整个系统。
2. 通过细分通信功能,更易于单独实现每个分层的协议。
劣势:
1. 可能导致过分模块化,使处理变得更加沉重。
2. 每个模块可能不得不实现相似的处理逻辑。
问题2:建立连接是三次,断开连接却是四次?
1
2
建立连接时,被动方服务器端结束CLOSED阶段进入“握手”阶段并不需要任何准备,可以直接返回SYN和ACK报文,开始建立连接。
释放连接时,被动方服务器,突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放连接之后,才能返回FIN释放连接报文。