【自我笔记之Linux】网络部分(IP地址、端口号、MAC地址、网络字节序列)

本文深入解析了网络通信中的关键概念,包括IP地址、端口号、MAC地址的作用与区别,以及网络字节序列的重要性。阐述了IPv4与IPv6的地址结构,端口号如何标识主机上的进程,MAC地址在网络设备定位中的作用,以及大小端问题在网络通信中的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、IP 地址

IP地址是IP协议中,用来标识网络中的唯一一台主机的地址。IP协议有两个版本IPv4,IPv6。在IPv4中,IP地址是一个4字节的32位的整数。在IPv6中,IP地址是一个16字节的128位的整数。

        我们通常所见到的IP地址如:192.168.3.195。是一用点分隔的字符串,每个数字用一个字节存储,范围是0~255,所以这种形式的IP地址也被称为“点分十进制”的字符串。

        两台主机通过网络来互相通信来发送数据时,就需要知道对方的IP地址,找到对方的主机,才能将数据发给它。所以在发送数据时,该数据包中还应包含两个IP地址,一个是目的IP,用于指明数据是发给谁的。一个是源IP,用于告诉对方该数据是哪台主机发送的,以便向其回发消息。

        当我们通过网络将数据发送给目的IP指定的主机时,目的主机要调用哪个进程对该数据进行处理,所以,此时还需要知道主机中处理数据的进程号。因此,需要引入端口号。

 

二、端口号

端口号是传输层协议的内容。

        端口号是一个2字节16位的整数。用来标识一个主机中唯一的一个进程。当源主机通过网络将数据发送给目的主机后,调用该端口号指定的进程来对数据进行处理。

        一个端口号只能绑定一个进程。如果一个端口号绑定了多个进程,那多个进程都对同一数据进行处理,那要采取那个进程返回的结果呢。所以一个端口号只能绑定一个进程。

        一个进程可以绑定多个端口号。很多源主机可以通过不同的端口号来找到目的主机中的同一进程来处理不同的数据。

        IP地址+端口号就是用来标识网络中的某一台主机的某一个进程的。

        将IP地址+端口号称为套接字

        **注意:这里要区分进程的PID与端口号。进程的PID相当于一个人的身份证号,在任何地方都唯一标识某个人,而端口号相当于一个学号,它只在学校里来唯一标识一个学生。因此,PID无论在哪里都可以唯一标识一个进程,而端口号只在网络通信中来唯一标识一个进程。

 

三、MAC地址

         MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第三层网络负责IP地址,第二层数据链路层则负责 MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属于它的IP地址。

         MAC地址是网卡(是一块允许计算机在计算机网路上通讯的计算机硬件,在OSI模型第一层,每个网卡都有MAC地址)决定的,是固定的。

 

四、 网络字节序列

        根据冯诺依曼体系结构,我们知道源主机要通过内存将数据先发给源主机的外设(网卡),然后发送到网络中,目的主机将网络中的数据项接收到目的主机的网卡上,再传入到目的主机的内存中,然后通过CPU对数据进行处理。

        而数据在内存中的存储有大小端之分。如果在源主机的内存为小端,而目的主机以大端的形式来接受数据时,此时,就会导致数据错误。而不仅不同主机的大小端不同,在网络序列中也有大小端之分。这样一来,就更加混乱了。

        所以,TCP/IP协议规定,网络数据流均采用大端,即数据的高位存放在低地址处

        如果源主机为小端则在发送数据时应先转为大端,如果是大端,则不用转化。然后将大端数据存放在发送缓冲区中,直接发送到网络中即可。

        当目的主机在接受消息时,先将网络中的大端数据存储到接受缓冲区中。如果目的主机是小端,则将大端数据转换为小端存储到内存中,如果目的主机是大端则不用转换直接存储到内存中。

        同时,规定:

发送主机将发送缓冲区的数据按低地址到高地址的顺序发出,即先将高位数据发送到网络中。

接收主机从网络中也是按低地址到高地址的顺序将数据接收到接受缓冲区中,即先接受网络中的高位数据。

因此,网络中的数据先从源主机收到的和先发送到目的主机的都是低地址高位的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值