一、TCP/IP协议
学习自###### (小林coding)(内容非常详细,特此在这里做一个笔记,仅供学习)https://xiaolincoding.com/network/1_base/tcp_ip_model.html#%E5%BA%94%E7%94%A8%E5%B1%82
前提
同一设备间的通信:管道、消息队列、共享内容、信号等方式
不同设备间的通信:通用的网络协议来兼容各种设备
网络协议是分层的:应用层、传输层、网络层、网络接口层
应用层(Application Layer)
用户直接接触到的,专注于为用户提供应用功能,应用层的数据会传给传输层,但是不会考虑如何传输
传输层(Transport Layer)
仅作为传输媒介,不实现传输功能
有两个传输协议:TCP和UDP
TCP(传输控制协议Transmission Control Protocol):
- 应用更广泛
- 相比UDP多了很多特性:流量控制、超时重传、拥塞控制等
- 保证数据包能可靠传输给对方。
-TCP段:传输数据包超过MSS(TCP最大报文段长度),就需要进行分块运输。
- 端口:用编号将在接收或者传输数据的应用进行区分;80端口通常是Web服务器使用;22端口通常是远程登录服务器使用。
UDP(用户数据报协议 User Datagram Protocol):
- 只负责发送数据包,不保证能否抵达;
- 实时性好,效率高
- 将TCP的特性在应用层实现就可以实现UDP的可靠传输
网络层(Internet Layer)
负责实现实际的传输功能
最常用的是IP协议(Internet Protocol):
- IP协议将传输层的报文作为数据部分,再加上IP包头组装成IP报文。
- IP报文大小如果超过MTU(以太网中一般为1500字节)就会再次进行分片。
IP地址:给设备进行编号
-
网络号:负责识别该IP地址属于哪个【子网】的;
-
主机号:负责标识同一【子网】下的不同主机;
##### IP协议的寻址作用告诉我们去往下一个目的地该朝哪个方向走,路由则是根据【下一个目的地】选择路径。
网络接口层(Link Layer)
在IP头部前面加上MAC头部,并封装成数据帧(Data fame)发送到网络上。
IP 头部中的接收方 IP 地址表示网络包的目的地,通过这个地址我们就可以判断要将包发到哪里,但在以太网的世界中,这个思路是行不通的。
什么是以太网呢?电脑上的以太网接口,Wi-Fi接口,以太网交换机、路由器上的千兆,万兆以太网口,还有网线,它们都是以太网的组成部分。以太网就是一种在「局域网」内,把附近的设备连接起来,使它们之间可以进行通讯的技术。
以太网在判断网络包目的地时和 IP 的方式不同,因此必须采用相匹配的方式才能在以太网中将包发往目的地,而 MAC 头部就是干这个用的,所以,在以太网进行通讯要用到 MAC 地址。
MAC 头部是以太网使用的头部,它包含了接收方和发送方的 MAC 地址等信息,我们可以通过 ARP 协议获取对方的 MAC 地址。
所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
总结
TCP/IP协议分为四层:应用层、传输层、网络层、网络接口层
封装格式****
传输单位统称为数据包****
网络接口层传输单位为帧(frame)、IP层传输单位为包(package)、TCP层传输单位为段(segment)、HTTP的传输单位为消息或报文(message)