TCP/IP五层协议(OSI七层参考模型)
从上到下依次为应用层->传输层->网络层->数据链路层->物理层
分层的目的
-
- 将网络的通信过程划分为更小的简单的部件,有助于各个部件的开发、设计和故障排查
-
- 允许各种类型的网络硬件和软件相互通信
-
- 防止某一层的改动影响到其他层
各层的主要协议
-
- 应用层
HTTP/HTTPS FTP(File Transport Protocal) SMTP(simple mail)
DNS(域名服务)、ping命令(调试网络环境)、
- 应用层
-
- 传输层:为两个主机提供通信服务=>产生数据包
UDP: user data protocal 不可靠的无连接的基于数据报的协议
无三次握手
TCP: transport control 可靠的,面向连接的基于字节流的协议
一对一only 拥塞控制
由于一个主机可同时运行多个进程,因此传输层有复用和分用的功能
复用,就是多个应用层进程可同时使用下面传输层的服务。
分用,就是把收到的信息分别交付给上面应用层中相应的进程。
- 传输层:为两个主机提供通信服务=>产生数据包
-
- 网络层:网络层主要实现数据包的选路和转发。
IP(internet因特网),ICMP(控制报文),ARP(地址解析)
- 网络层:网络层主要实现数据包的选路和转发。
-
- 数据链路层:
传输单位是帧,分为逻辑链路控制子层(LLC),媒体访问控制子层(MAC);
数据链路层是网卡接口的驱动程序,处理数据在物理媒介的传
- 数据链路层:
-
- 物理层:传输单位是比特流
传输的主要介质:集线器、中继器、调制解调器、网线、双绞线、同轴电缆。
- 物理层:传输单位是比特流
OSI七层模型
OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
CRC循环冗余码
一般考试的时候会给出生成多项式和一个信息位
1.确定除数
如p(x)=1*x3+1*x2+0*x1+1*x0=>1101
得到除数为1101
2.根据多项式p(x)的最高阶为信息位补0
最高阶为3,所以在信息位后补三个0=>101001000
3.让信息位补0与除数做异或运算得到余数
101001000
xor1 1101
res1 1110 //结果省去0依次借后面的位
xor2 1101
res2 1110
xor3 1101
res3 1100
xor4 1101
finalRes 1 余数为1
4.得到的余数补全位数,放在原信息位后
因为之前补了三个0,现在把余数得到了,所以补的位应是001
101001001这就是CRC校验码
子网划分
1.A类IP地址
固定一位开头0,网络号8位,主机号24位 1-126
2.B类IP地址
固定一位开头10,网络号16位,主机号16位 128-191
3.C类IP地址
固定一位开头110,网络号24位,主机号8位 192-223
d类ip地址第一个字节以“1110”开始, 224-239
A类IP地址 地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110)。
B类IP地址地址范围128.1.0.1-191.254.255.254(二进制表示为:10000000 00000001 00000000 00000001 - 10111111 11111110 11111111 11111110)
C类IP地址范围192.0.1.1-223.255.254.254(二进制表示为: 11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110)。
D类IP地址范围224.0.0.1-239.255.255.254 。
E类IP地址范围240.0.0.0—255.255.255.254。
子网划分主要在主机号上进行划分
IP号
网络号 | 子网号 | 主机号
子网掩码 :网络号和子网号全1,主机号全0
例题:某单位有C类网络200.1.1.0,现准备为4个部门划分子网,4个部门的主机分别为A-71台,B-34台,C-21台,D-17台,即有143台主机
(1)给出一种可能的子网掩码,安排完成子网划分任务
如果按照常规来划分的话,就让主机号拿出两位来进行子网划分,
但是如果拿出两位来进行划分的话,剩下6位那么A部门就划分不够
所以需要变长子网划分
A 0 | 1111111 =>子网号255.255.255.128
B 10 | 111111 =>子网号255.255.255.192
C 110 | 11111 =>子网号255.255.255.224
D 111| 11111 =>子网号255.255.255.224
(2)如果部门D的主机数目增长到了34台,该单位又如何划分子网
A 00 001 有2^6+2^5台
B 10
C 000
D 11
IP数据报分片
一个IP数据报数据部分为 3800字节,规定分片长度不超过1420字节,首部20字节,每个分片数据部分不超过1400字节(MTU为最大传输单元,包括首部和数据部分)
一个数据报文包括首部和数据部分
分片后首部+数据要<=MTU
总长度为首部加数据部分
MF代表只要最后一片为0
DF代表能否分片 Dont Fragment Flag
片偏移 不加上首部开始算,从偏移位置开始除以8
数据报分片 | 总长度 | MF位 | DF位 | 片偏移 |
---|---|---|---|---|
原始数据段 | 3820 | 0 | 0 | 0 |
数据报片1 | 1420(20+1400) | 1 | 0 | 0 Start At 0 |
数据报片2 | 1420(20+1400) | 1 | 0 | 175(1400/8) |
数据报片3 | 1020(20+1000) | 0 | 0 | 350(2800/8) |
TCP滑动窗口
TCP通过滑动窗口的概念来进行流量控制。设想在发送端发送数据的速度很快而接收端接收速度却很慢的情况下,为了保证数据不丢失,显然需要进行流量控制, 协调好通信双方的工作节奏。所谓滑动窗口,可以理解成接收端所能提供的缓冲区大小。
窗口合拢:当窗口从左边向右边靠近的时候,这种现象发生在数据被发送和确认的时候。
窗口张开:当窗口的右边沿向右边移动的时候,这种现象发生在接受端处理了数据以后。
窗口收缩:当窗口的右边沿向左边移动的时候,这种现象不常发生。
发送方的发送缓存内的数据都可以被分为4类:
- 已发送,已收到ACK
- 已发送,未收到ACK
- 未发送,但允许发送
- 未发送,但不允许发送
其中类型2和3都属于发送窗口。
接收方的缓存数据分为3类:
- 已接收
- 未接收但准备接收
- 未接收而且不准备接收
发送窗口中相关的有四个概念:已发送并收到确认的数据(不再发送窗口和发送缓冲区之内)、已发送但未收到确认的数据(位于发送窗口之中)、允许发送但尚未发送的数据***以及发送窗口外发送缓冲区内暂时不允许发送的数据
每次成功发送数据之后,发送窗口就会在发送缓冲区中按顺序移动,
将 新的数据包含到窗口中准备发送;
拥塞避免
等于门限值ssthresh就开始拥塞避免
TCP三次握手和四次挥手
syn 同步位=1
seq 序号
ACK 确认应答=1
ack 确认序号 =seq+1
四次挥手
路由表更新
更新规则
1.添加自己没有的路由
2.替换已有的距离较长的路由
3.更新已有的过时的路由
接收方一般都是采用累积确认的方式。也就是说接收方不必对收到的分组逐个发送确认。而是在收到几个分组后,对按序到达的最后一个分组发送确认。如果收到了这个分组确认信息,则表示到这个分组为止的所有分组都已经正确接收到了。
连续ARQ协议中,如果接收方收到序号为 7 、9、10,那么发回的确认号应该是( 10 )
累积确认的优点是容易实现,即使确认丢失也不必重传。但缺点是,不能正确的向发送方反映出接收方已经正确收到的所以分组的信息。比如发送方发送了前5个分组,而中间的第3个分组丢失了,这时候接收方只能对前2个发出确认。而不知道后面3个分组的下落,因此只能把后面的3个分组都重传一次,这种机制叫Go-back-N(回退N),表示需要再退回来重传已发送过的N个分组。
- 连续ARQ协议中,假设发送方的窗口大小为3,序号范围是0~15,假定网络能保证接收方按序收到分组。在某一时刻,接收方下一个期望收到的序号是6。请问:
1)在发送方,可能出现的序号组合有哪些?
2)接收方已经发出,但是还没有到达发送方的确认分组可能有哪些?
-
主机A向主机B连续发送了两个TCP报文段,其序列号分别是70和100。试问:
(1)第一个报文段携带了多少字节的数据?
(2)主机B收到第一个报文段后发回的确认中的确认号应当是多少?
(3)如果B收到第二个报文段后发回的确认中的确认号是180,试问A发送的第二个报文段中的数据有多少字节?
(4)如果A发送的第一个报文段丢失了,但第二个报文段到达了B。B在第二个报文段到达后向A发送确认。试问这个确认号应当是多少?
传输层的作用
(1)分割与重组数据
(2)按端口号寻址
(3)连接管理
(4)差错控制和流量控制
选择题
- 下列属于资源子网的是 - 主机
- 下列设备中属于通信子网的是 - 网卡
- 若网络形状是由站点和连接站点组成的闭环则称之为 - 环形拓扑
- 计算机网络中节点是指 - 在通信线路和主机之间设置的通信线路控制处理机
- 误码率描述了数据传输系统正常工作状态下传输的 - 可靠性
- 全双工->可以在两个方向同时传输 单工->只能一个方向传输
- 数据链路层的数据协议单元是 - 帧 设置数据链路层是将原始的有差错的物理线路变为无差错的数据链路
- 常用的三种传输介质有 - 同轴电缆、双绞线、光纤
- MAC位址,以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址
一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址
ARP协议 IP->MAC地址的转换 - 最常用的两个多路复用技术 -
- 时分复用 物理信道->时间片轮转->多个信号使用
- 频分复用 物理线路->设计成多个物理信道
- 网络协议的三要素 - 语法、语义和同步
- 如果一个C类IP地址的三位主机号部分划分子网则子网掩码是 255.255.255.224(11100000)
- 套接字=地址+端口号
- 完整的通信表示: 传输层协议、desPort,desURL,srcPort,srcURL
- 星形拓扑 - 连起来像星星,点对点通信通过中心节点
- DNS协议使用的传输层协议是 - UDP
- 如果用户程序使用UDP进行数据传输,那么- 应用层 -协议必须承担可靠性方面的全部工作。
- 在UDP报文中,伪首部的作用是 - 计算校验和
- A和B之间建立了TCP连接,A向B发送了一个报文段,其中序号字段seq=300,确认号字段ACK=101,数据部分包含7B,那么在B对该报文的确认报文段中 -seq = 101 ACK=307
- 主机甲与主机乙之间已建立一个TCP连接,主机甲向主机乙发送了3个连续的TCP段,分别包含300字节、400字节和500字节的有效载荷,第3个段的序号为900。若主机乙仅正确接收到第1和第3个段,则主机乙发送给主机甲的确认序号是 - 500
- CP协议是面向字节流的协议,其特点是(A)
- A. 接收方收到的数据块和发送方发出的数据块大小可能不相同
- B. 接收方的TCP每次向应用层交付一个完整的报文
- C. TCP协议知道所传输的数据块的含义
- D. TCP协议不要求主机维护复杂的状态表
- 要参与Udp校验和计算的部分包括( udp头部和数据 )
- tcp发送方收到 零窗口通告报文后,启动 坚持计时器