[前锋安全篇10]TCP-IP5层协议

TCP-IP5层协议

OSI与TCP/IP协议

分层思想
通信需求 -> 定义协议标准
同层使用相同的协议,下层为上层提供服务
将复杂的流程分解为几个功能相对单一的子过程

  • 整个流程更加清晰,复杂问题简单化
  • 更容易发现问题并 针对性的解决问题

TCP/IP协议在OSI的基础上进行了优化,所以OSI模型有7层,而TCP/IP则只有5层。

OSI 协议栈 TCP/IP
应用层 应用层协议 应用层 PDU PC/防火墙
表示层 表示层协议 PDU PC/防火墙
会话层 会话层协议 PDU PC/防火墙
传输层 传输层协议 传输层 数据段/段Fragment 防火墙
网络层 网络层协议 网络层 IP包/报文Package 路由器
数据链路层 数据链路层协议 数据链路层 帧Frame 交换机、网卡
物理层 物理层协议 物理层 比特bit 网线

每一层对应的协议都是固定的,而TCP/IP协议简化了表示层会话层 ,通常这2层都被归为了应用层

封装过程

我们自顶向下来看看数据是怎么被TCP/IP封装的吧

应用层

我们从QQ发送了一个hello给对话的好友,这时的hello非常单纯,他只是一个hello

应用层
hello

传输层

然后他来到了传输层传输层会为他添加一个TCP/UDP头也就是常说的IP

传输层 应用层
TCP/UDP头(具体哪个取决是何种传输方式) hello

这个头包含了源端口目标端口等等有用的信息,通过应用层端口号才能将数据准确的送给相应的进程(说人话)应用程序。那么TCP头和UDP头的结构是什么样的呢?

TCP头

[前锋安全篇10]TCP-IP5层协议

UDP头

[前锋安全篇10]TCP-IP5层协议

TCPUDP都是一种协议,区别在于TCP是可靠传输,面向连接传输; UDP是不可靠传输,无连接传输

当然????和????????难以兼得,安全和性能也是如此。既然TCP安全,那性能就要比UDP慢一点;而UDP没有TCP那么安全,可UDP的传输性能就要比TCP快一些。

这时他被称为数据段 ,下面我们来到下一层

网络层

进入到网络层以后,网络层给数据段又加上了一个头那就是IP头

网络层 传输层 应用层
IP头 TCP/UDP头(具体哪个取决是传输方式) hello

这个头包含了源端口目标端口等等有用的信息。那么IP头的结构是什么样的呢?

IP头

[前锋安全篇10]TCP-IP5层协议

现在他被称为报文或者 ,那么继续向下来到数据链路层

数据链路层

交换机就工作在数据链路层,

????????????交换机工作原理了解即可,下面我也会提到简单版的。大段文字不想看就略过去吧????‍♀️????‍♀️????‍♀️

工作原理

交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口,目的MAC若不存在,广播到所有的端口,接收端口回应后交换机会“学习”新的MAC地址,并把它添加入内部MAC地址表中。使用交换机也可以把网络“分段”,通过对照IP地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的减少冲突域。

端口

交换机在同一时刻可进行多个端口对之间的数据传输。每一端口都可视为独立的物理网段(注:非IP网段),连接在其上的网络设备独自享有全部的带宽,无须同其他设备竞争使用。当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有网络的全部带宽,都有着自己的虚拟连接。假使这里使用的是10Mbps的以太网交换机,那么该交换机这时的总流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB时,一个HUB的总流通量也不会超出10Mbps。总之,交换机是一种基于MAC地址识别,能完成封装转发数据帧功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。

数据传送的工作原理

交换机的任意节点收到数据传输指令后,即对于存储在内存里的地址表进行快速查找,从而对于MAC地址的网卡连接位置进行确认,然后再将数据传输到该节点上。如果在地址表中找到相应的位置,则进行传输;如果没有,交换机就会将该地址进行记录,以利于下次寻找和使用。交换机一般只需要将帧发送到相应的点,而无需如集线器发送到所有节点,从而节省了资源和时间,提高了数据传输的速率。 [2]

数据传送方式

通过交换的方式进行的数据传输,其实就是交换机的数据传送的方式。之前的集线器,更多是利用共享的方式,来对数据进行传输,没有办法从通讯的速度上进行要求。集线器的共享方式,也就是常说的共享式网络,以集线器作为连接设备并且只 有一个方向的数据流,因而网络共享的效率非常低。相对而言,交换机能够对连接到自身的各台电脑进行相应的识别,通过每台电脑网卡的物理地址也就是常说的MAC地址,来进行记忆和识别。在这样的前提之下,就不用再进行广播寻找,而能够直接将记忆的MAC地址找到相应的地点并且通过一个临时性专用的数据传输通道,来完成两个节点之间不受外来干扰的数据传输的通信。由于交换机还具有全双工传输的方式,所以也可以对于多对节点间通过同时建立临时的专用通道,来形成一个立体且交叉的数据传输通道结构。

开始,数据链路层又给报文加了什么东西呢?????这回加的就是数据帧了,数据帧分为帧头、数据部分和帧尾。

MAC子层 网络层 传输层 应用层 帧尾
帧头、数据部分 IP头 TCP/UDP头(具体哪个取决是传输方式) hello FCS

帧头包含了源MAC地址目标MAC地址,数据部分自不必说。帧尾的FCS是什么呢?FCS是将前面几个部分通过某个算法算出来的一个大小为4Bytes的值,通过这个值可以校验信息是否被篡改了,听上去是不是很像md5算法呢?虽然算法不同,但是做的事情还是一样的。????????????

这是他被称为

解封装

解封装过程就是封装的逆序。

各种服务的端口和使用协议

[前锋安全篇10]TCP-IP5层协议

所有的服务都使用TCP ????????????