2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Linux网络编程(IP地址 端口 通信协议 网络字节序)

Linux网络编程(IP地址 端口 通信协议 网络字节序)

时间:2024-05-23 13:23:06

相关推荐

Linux网络编程(IP地址 端口 通信协议 网络字节序)

网络概念

局域网,城域网,广域网:根据覆盖范围进行的网络划分

互联网(因特网):国际性更大范围的广域网

以太网,令牌环网:组网方式

IP地址

IP地址,是用来标识网络中不同主机地址(每一台主机的唯一标识)

ipv4:无符号4字节 32位标识

DHCP :动态分配IP地址 原则:上网才分配NAT:私网地址转换

ipv6:无符号16字节 128位标识

网络通信的每一条数据中都会有两个信息:源端ip地址+对端ip地址

ip地址目的是将数据发送的源地址和目标地址

端口

端口:(无符号2字节 16位标识)在一台主机上用于标识一个socket(进程创建socket)

收到网络中一条数据,端口决定这条数据由当前主机上哪一个socket进行处理

网络通信的每一条数据中都会有两个信息:源端端口+对端端口

一个端口只能被一个进程占用,一个进程可以使用多个端口

综上:网络通信的每一条数据包含 sip+sport+dip+dsport 从源端到对端

五元组:sip+sport+dip+dsport+protocal(协议) 表示网络中每条数据从哪来,到哪去,中间数据格式协议如何

通信协议

网络通信协议:网络传输数据格式的约定

协议分层:在复杂的网络通信环境中,根据服务,以及所使用的协议,将网络通信环境划分多层

OSI七层网络:

应用层表示层会话层传输层网络层 地址管理及路由选择数据链路层物理层

缺点:OSI七层网络对网络环境的划分过于细致,实现起来难度过大,并不推荐使用,而是采用了TCP/IP五层协议:

TCP/IP五层协议:

应用层:负责应用程序之间数据沟通 HTTP/FTP协议传输层:负责进程(socket)之间数据传输 TCP/UDP协议网络层:负责地址管理和路由选择(源端对端IP地址) IP协议 设备:路由器链路层:负责相邻设备之间数据传输 (相邻源端对端MAC地址) 以太网ETH协议设备:交换机物理层:负责物理光电信号传输 以太网ETH协议设备:集线器

数据包封装与分用

根据上图得到数据包封装与分用步骤

网络字节序

字节序:CPU在内存中对数据进行存取的顺序

主机字节序种类(大端:低地址存高位 小端:低地址存低位)取决于CPU架构:X86架构(小端)

字节序影响存储单元大于1个字节的数据类型(short 2 int 4 float 4 double 8 long 8...) 单字节存储不会受大小端字节序存储影响 char buf[1024]="abc" 存储顺序还是abc

主机字节序对网路通信的影响:

在网络通信过程中,不同主机字节序的两端主机进行通信造成数据二义 小端字节序可能被另外一台主机解释为大端字节序导致数据传输错误

解决方案:在网络通信协议中订立字节序标准,必须使用指定的字节序标准,确保网络字节序为大端字节序

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。