携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天
TCP/IP协议栈参考模型
主机到网络层协议
本层主要为IP 协议和ARP 协议( 地址解析协议)提供服务、发送和接收网络数据报。
IPV4\IPV6
IP协议
IP协议是TCP/IP协议中最重要的协议,它为TCP、UDP、ICMP等协议提供传输的通路。IP层的主要目的是提供子网的互联,形成较大的网络,使不同的子网之间能传输数据。IP层主要有如下作用:
数据传送
寻址
路由选择:TTL(Time To Live)表示数据报文最多可以经过的路由器的数量。
数据报文的分段
网际控制报文协议(ICMP)
ICMP协议用于传递差错信息、时间、回显、网络信息等报文控制数据。
ICMP协议的数据位于IP字段的数据部分,它是在IP报文的内部被传输的。
传输控制协议(TCP)
传输控制协议(Transmission Control Protocol),简称TCP协议,它在原有IP协议的基础上,增加了确认重发、滑动窗口和复用/解复用等机制,提供一种可靠的、面向连接的字节流服务。
1.TCP的特点
2.TCP的数据格式
3.建立连接的三次握手
4.释放连接的四次握手过程
5.TCP的封装解封过程
用户数据报文协议(UDP)
UDP是一种基于IP协议的不可靠网络传输协议。
1.UDP的数据格式
2.UDP数据的传输过程
主机字节序和网络字节序
字节序的问题是由于CPU对整数在内存中的存放方式造成的。多于一个字节的数据类型在内存中的存放顺序叫主机字节序。最常见的字节序有两种,小端字节序和大端字节序。
小端字节序(Intel x86架构)(低存低,高存高)(主机)
将数据的最低字节放在内存的起始位置,与思维习惯一致,与实际习惯不一致
低地址 存放 数据的低字节
高地址 存放 数据的高字节
大端字节序(UNIX PowPC低存高,高存低)(网络)
将数据的高字节放在内存的起始位置,与实际习惯一致
高地址 存放 数据的低字节
低地址 存放 数据的高字节
网络字节序标准是大端字节序
进行网络字节序转换的函数:
htons():host主机 to net网络对于short类型的变量
即对于short类型的变量从主机字节序向网络字节序转换
htonl():host主机 to net网络对于long类型的变量
即对于long类型的变量从主机字节序向网络字节序转换
ntohs():net网络to host主机对于short类型的变量
即对于short类型的变量从网络字节序向主机字节序转换
ntohl():net网络to host主机 对于long类型的变量
即对于long类型的变量从网络字节序向主机字节序转换