推荐书籍:
- TCP/IP卷一 and 卷二
- 图解TCP/IP
概述:
随着计算机网路的普及和发展,各大厂商纷纷推出自己的运行标准,在早期不同系统之间没有办法做到像今天的苹果和安卓一样相互通信,于是为了统一通信两大组织:美国国防部和ISO(国际标准化组织)分别推出了TCP/IP协议簇和OSI/开放式系统互连模型:
从左往右依次是:
TCP标准模型、TCP对等模型、OSI模型
OSI参考模型:
- 应用层:接受用户数据-人机交互接口
- 表示层:将逻辑语言转化为机器语言-(软件开发语言->二进制语言)
- 会话层:针对传输的每一种数据建立一条独立的通道-会话号
控制层面-上三层:不会对数据本身进行修改
数据层面-下四层:对数据进行加工
- 传输层:区分流量信息,定义数据传输方式-TCP协议 UDP协议
- 网络层:通过IP地址进行逻辑寻址-IP协议
- 数据链路层:介质访问控制层(MAC)+逻辑链路控制层(LLC)
- 物理层:定义物理特性
报文的封装与解封装:
PDU--协议数据单元:
对不同层封装的数据单元标识(单位名称:一个人 一只狗)
- 应用层-------数据报文
- 传输层-------数据段
- 网络层-------数据包
- 数据链路层----数据帧
- 物理层-------比特流
TCP对等模型进行讲解:
物理层:
代表设备:中继器、集线器
传输介质:同轴电缆、双绞线、光纤
双绞线按照类型分:
屏蔽双绞线/STP、非屏蔽双绞线/UTP
双绞线按照传输效率分:
5类、超5类 6类、超6类 7类
100Mbps 1000Mbps 10Gbps
线序:568A、568B
568B:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕
568A:1/3对调、2/6对调
绿白、绿、橙白、蓝、蓝白、橙、棕白、棕
光纤有两种模式:
单模(波长1310nm)传输距离远,但是传输效率较低-单频传输
多模(波长850nm)传输距离短,但是传输效率高-多频传输
双工模式:
- 单工:只能进行单方向传输
- 半双工:只能进行单向传输或单向接收
- 全双工:同时接收和发送数据
同一物理链路连接的设备所具备的双工模式必须相同
数据链路层:
二层地址--MAC地址
写法:减号分十六进制--48bit
AAAA-AAAA-AAAA or AA-AA-AA-AA-AA-AA
- 前24位:表示厂商ID--由IEEE组织进行全球分配
- 后24位:表示产品ID
数据帧:
由网络层产生的数据包,被下发给数据链路层后,分别会在数据包的头部和尾部加上封装信息,封装后的数据被称为数据帧。
数据帧的类型决定数据该如何传输:
-
以太网Ⅱ
TYPE--网络层使用的IP类型:IPV4/IPV6
DATA--整个网络层传输下来的数据
FCS--帧校验序列
使用的是模二运算,可以参考CRC标准文档
-
IEEE802.3 标准
数据帧发送方式:
- 单播
- 广播
- 组播
网络层:
IPV4地址总共分为5类:
- ABC类为单播地址--既可以当作源IP使用,也可以当作目标IP使用,每一个单播地址都标识着一个唯一的节点;只有单播地址可以作为源IP。
- D类为组播地址:只能作为目标IP使用(介于单播和广播之间--在班级里拉个小群-世界杯:摇到栏目里才能看)。
- E类为保留地址:........(据说美国军方使用)
- 基于IP地址的第一个8位进行分类:
A类:1-126 前8位为网络位。
110.1.1.1(由第一个8位,无需子网掩码也可以判断为IP地址---子网掩码为:255.0.0.0/8)
B类:128-191 前16位为网络位
C类:192-223 前24位为网络位
D类:224-239 不分网络位和主机位
E类:240-255 ......
特殊地址:
- 1:127-环回地址:127.0.0.1-127.255.255.255(用作排错历程分析:查看是硬件软件问题)
步骤:
设置->网络和Internet->更改适配器选项->WLAN->详细信息
->1.Win+R ping IPv4 2.ping网关(逐点排查)ping IPv4不通则自己电脑问题
--ping 127.0.0.1如果能通说明软件没问题,硬件发生故障;ping 127.0.0.1能通
ping IPv4不通则可能是网卡损坏。
- 2:255.255.255.255-广播地址(不知道IP MAC地址还要找到PC端-老师电脑控制学生电脑;范围受限制)
- 主机位全1:IP 192.168.1.255/24(受限广播地址:用于本地向本地以外的广播域进行广播行为--所有路由器默认关闭)
- 3:主机位全0:IP 192.168.1.0 子网掩码 255.255.255.0(代表一个网段/网络号)
- 4:0.0.0.0 代表没有地址or所有地址
- 5:169.254.0.0/16-本地链路地址/自动私有地址
私有地址:
- A:10.0.0.0--10.255.255.255
- B:172.16.0.0---172.31.255.255---共16个B类地址段
- C:192.168.0.0-192.168.255.255---共256个C类地址段
数据包解析与IP分片:
IP分片:
MTU/
最大传输单元
---
在以太网当中默认为
1500
字节
----
实际应用中,设备双方通过协商得出
MTU
数值后,并以MTU在链路中传输报文
。
Version:版本--恒定为4
Time to live/TTL数值:生存时间--这个数据包可以在网络中存活的时间
每经过一台路由器TTL数值减1,当某台路由器在收到IP报文后,
发现TTL数值为0,则直接丢弃该报文。
Protocol:协议字段--指代上层协议(可以是传输层:TCP/UDP、也可以是应用层:HTTP)
TCP---6
UDP---17
Identification:标记字段--用于数据包的排序以及判断是否完整接收数据信息
flags:标志位---3bit:
第一位--恒定0;
DF位---该标记位为1,则代表该报文没有被分片。
MF位---为0则代表是最后一个报文,为1则代表后续还有其他报文。
Fragment Offset:片偏移--用来记录每一个分片的原始位置(原始位置/8)
传输层:
TCP分段:
端口号
---
用来区分计算机上不同应用程序的;标识不同的进程。
端口号总共是2字节大小。
0-65535--->1-65535
静态端口(著名端口)---1-1023----网络中常用协议的固定端口动态端口
----1024-65535--->某些协议或程序自行生成的端口
TCP
协议
-----
传输控制协议
一种面向连接的可靠传输协议。
TCP协议建立的连接是双向连接。
面向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路。
无面向连接。
面向连接:
面向连接(面对面)--3次握手 4次挥手
本质:建立端到端的虚链路(在原本可以连接的链路里面再建立一条虚链路)
- SYN:发起一次连接,并告知自身状态
- ACK:取值为1,表示确认
- 特殊情况:RST重连
- TCP 严重错误并重连
- FIN 断开
- PSH 紧急加收
- URG 紧急指针
三次握手:
四次挥手: