邢台网站推广报价,创业型企业网站模板,模板网优酷,上海免费网站建设服务目录 前言
1、TCP/IP分层模型
2、ARP缓存
3、TCP 协议之所以提供可靠传输#xff0c;不怕丢包、乱序的主要的原因是
4、以太网数据链路层MII/GMII/RMII/RGMII四种常用接口
5、在以太网通信协议LWIP中#xff0c;数据包管理机构采用数据结构pbuf 分类包括
6、关于以太网…目录 前言
1、TCP/IP分层模型
2、ARP缓存
3、TCP 协议之所以提供可靠传输不怕丢包、乱序的主要的原因是
4、以太网数据链路层MII/GMII/RMII/RGMII四种常用接口
5、在以太网通信协议LWIP中数据包管理机构采用数据结构pbuf 分类包括
6、关于以太网MAC帧传输先后顺序由左至右正确的是
7、在以太网通信中数据从上层到下层交付时要进行封装同理当目标主机接收到数据时数据由下层传递给上层时需要进行拆封。这就是数据的封装与拆封
8、在以太网通信协议LWIP中关于网络数据包pbuf的各种分类
9、在以太网通信中如果要判断两个 IP 地址是否处于同一个子网
10、根据 IP 地址中网络地址和主机地址两部分分别占多少位的不同将 IP 地址划分为 5 类分别为 A、B、C、D、E 五类
11、不属于以太网物理层子层的是
12、TCP适用于对数据完整性要求很高的场景
13、在TCP协议首部中保留位之后有 6 个标志位分别是URG/ACK/PSH/RST/SYN/FIN
14、关于数据链路层中MII接口
15、在以太网通信中当前网络中的主流程序设计都是使用 socket 进行编程的在Linux中socket()函数原型是int socket(int domain, int type, int protocol)
16、在Linux以太网通信中内核提供了专门用于网络通信数据的读取函数recvrecv()函数原型是ssize_t recv(int sockfd, void *buf, size_t len, int flags)
17、在以太网通信中当两个设备建立连接后我们可以使用ping 命令来测试网络可达性tracert 命令用来显示到达目的主机的路径。这两个命令是基于哪个协议的
18、在以太网通信中 关于OSI 参考模型中每一层的作用
19、在以太网通信中TCP 协议在建立连接、断开连接以及数据传输过程中都会呈现出现不同的状态不同的状态采取的动作也是不同的TCP状态包括
20、在以太网通信中一个主机和另一个主机进行直接通信必须要知道目标主机的MAC地址
21、TCP与UDP的主要区别
22、以太网中所有的站点共享一个通信信道因为多个站点可以同时向网络上发送数据所以需要一些检测机制
23、在以太网通信中当服务器程序accept()函数与远程客户端之间建立连接后accept()函数返回
24、物理层的主要功能是
25、不属于以太网MAC帧中FCS字段校验范围的是
26、在Linux以太网通信中send()函数用来发送数据 send()可以通过参数 flags 指定一些标志来改变处理传输数据的方式。关于这些flag描述不正确的是
27、在以太网通信中以太网数据帧结构不包括
28、在以太网通信中如果调用 accept()函数时并没有客户端请求连接此时 accept()会
29、在微型嵌入式操作系统中以太网通信常用的协议栈就是LWIPLWIP是瑞典计算机科学院(SICS)的Adam Dunkels等开发的一个小型开源的TCP/IP协议栈。LWIP 是轻量级 IP 协议有无操作系统的支持都可以运行。
30、在以太网通信中常用的就是TCP协议TCP是一种面向连接的、可靠的、基于 IP 的传输协议。关于TCP描述
31、在网络通信中端口号本质上就是一个数字编号用来在一台主机中唯一标识一个能上网的进程端口号的取值范围为 0~65535。很多常见的服务器它都有特定的端口号
32、以太网通信中当数据由上层发送到传输层时数据会被封装为 TCP 数据段我们将其称为 TCP 报文TCP 报文由 TCP 首部数据区域组成。TCP首部信息不包括
33、ARP协议中的免费ARP说法错误
34、以下关于以太网MAC帧组成错误的是
35、在以太网通信中IP 地址用于标识互联网中的每台主机的身份关于IP地址描述不正确的是
36、在Linux以太网通信中connect()函数原型是int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen)
37、在Linux以太网通信中也可以通过 read()函数可以从一个socket描述符中读取指定字节大小的数据。关于read函数
38、在以太网通信中我们有时候需要在点分十进制字符串和二进制地址之间进行转换。如果我们想将点分十进制表示的字符串形式转换成二进制Ipv6 地址。则可以调用函数 前言
牛客网刷刷刷在去年秋招之后就断更很久了博主决定居安思危在有空的时候多刷点题提高一下应试素养记录一下成长点滴。话不多说开始今天的网络通讯协议的学习
1、TCP/IP分层模型
常用的TCP/IP 分层模型有两种TCP/IP 五层模型和TCP/IP 四层模型。
TCP/IP 五层模型中将 OSI 七层模型的最上三层应用层、表示层和会话层合并为一个层即应用层所以 TCP/IP 五层模型包括应用层、传输层、网络层、数据链路层以及物理层。
TCP/IP 四层模型与五层模型唯一不同的就是将数据链路层和物理层合并为网络接口层所以 TCP/IP 四层模型包括应用层、传输层、网络层、网络接口层。
2、ARP缓存
缓存中的静态ARP项目通过手工配置和维护不会被老化不会被动态ARP项目覆盖。直到重新启动计算机为止。
3、TCP 协议之所以提供可靠传输不怕丢包、乱序的主要的原因是
TCP 协议之所以提供可靠传输不怕丢包、乱序。主要的原因是
①、TCP 协议采用发送应答机制即发送端发送的每个 TCP 报文段都必须得到接收方的应答才能认为这个 TCP 报文段传输成功。
②、TCP 协议采用超时重传机制发送端在发送出一个 TCP 报文段之后启动定时器如果在定时时间内未收到应答它将重新发送该报文段。
③、由于 TCP 报文段最终是以 IP 数据报发送的而 IP 数据报到达接收端可能乱序、重复、所以 TCP协议还会将接收到的 TCP 报文段重排、整理、再交付给应用层。
TCP 协议的滑动窗口机制是用来TCP流量控制的不属于TCP协议稳定可靠的主要原因
4、以太网数据链路层MII/GMII/RMII/RGMII四种常用接口
RGMII接口的RXD和TXD信号位宽均是4位有效的避免了GMII管脚多24PIN导致封装成本增加。
5、在以太网通信协议LWIP中数据包管理机构采用数据结构pbuf 分类包括
在LWIP中pbuf 共分为四类PBUF_RAM、PBUF_ROM、PBUF_REF和 PBUF_POOL。
6、关于以太网MAC帧传输先后顺序由左至右正确的是
根据IEEE802.3协议要求MAC帧传输顺序为前导码-定界符-目的地址-源地址-LENGTH/TYPE-DATA/PAD-校验字段-扩展字段
7、在以太网通信中数据从上层到下层交付时要进行封装同理当目标主机接收到数据时数据由下层传递给上层时需要进行拆封。这就是数据的封装与拆封
数据封装如下
当用户发送数据时将数据向下交给传输层但是在交给传输层之前应用层相关协议会对用户数据进行封装譬如 MQTT、HTTP 等协议其实就是在用户数据前添加一个应用程序头部这是处于应用层的操作最后应用层通过调用传输层接口来将封装好的数据交给传输层。
传输层会在数据前面加上传输层首部传输层首部可以为 TCP 首部也可以是 UDP 首部然后向下交给网络层。
网络层会在数据前面加上网络层首部IP 首部然后将数据向下交给链路层链路层会对数据进行最后一次封装即在数据前面加上链路层首部以太网接口为例对应以太网首部然后将数据交给网卡。 最后由网卡硬件设备将数据转换成物理链路上的电平信号数据就这样被发送到了网络中。
当数据被目标主机接收到之后会进行相反的拆封过程将每一层的首部进行拆解最终得到用户数据。所以数据的接收过程与发送过程正好相反可以概括为 TCP/IP 模型中的各层协议对数据进行解析的过程。
8、在以太网通信协议LWIP中关于网络数据包pbuf的各种分类
PBUF_RAM 类型的 pbuf 主要通过内存堆分配得到的。这种类型的 pbuf 在协议栈中是用得最多的。PBUF_POOL 类型和 PBUF_RAM 类型的 pbuf 有很大的相似之处但它主要通过内存池分配得到的。这种类型的 pbuf 可以在极短的时间内得到分配。PBUF_ROM 和 PBUF_REF 类型的 pbuf 基本相同它们的申请都是在内存堆中分配一个相应的 pbuf 结构头而不申请数据区的空间。这就是它们与 PBUF_RAM 和 PBUF_POOL 的最大区别。PBUF_ROM 和 PBUF_REF 类型的区别在于前者指向 ROM 空间内的某段数据而后者指向 RAM 空间内的某段数据。
9、在以太网通信中如果要判断两个 IP 地址是否处于同一个子网
在以太网通信中可通过网络标识来进行判断两个 IP 地址是否处于同一个子网网络标识定义如下 网络标识 IP 地址 码 子网掩码 2 个 IP 地址的网络标识相同那么它们就处于同一网络。譬如 192.168.1.50 和 192.168.1.100这 2 个都是 C 类地址对应的子网掩码为 255.255.255.0很明显这两个 IP 地址与子网掩码进行按位与操作时得到的结果网络标识是一样的所以它们处于同一网络。
10、根据 IP 地址中网络地址和主机地址两部分分别占多少位的不同将 IP 地址划分为 5 类分别为 A、B、C、D、E 五类
一个 A 类 IP 地址由 1 个字节网络地址和 3 个字节主机地址组成A 类地址范围为1.0.0.1 ~ 127.255.255.254
一个 B 类 IP 地址由 2 个字节的网络地址和 2 个字节的主机地址组成B 类地址范围128.0.0.1 ~ 191.255.255.254。
一个 C 类 IP 地址由 3 字节的网络地址和 1 字节的主机地址组成C 类地址范围为192.0.0.1 ~ 223.255.255.254。
D 类 IP 地址第一个字节以“1110”开始它是一个专门保留的地址它并不指向特定的网络D 类地址范围224.0.0.1 ~ 239.255.255.254。
E 类 IP 地址以“llll0”开始为将来使用保留。E 类地址范围240.0.0.1 ~ 255.255.255.254。
11、不属于以太网物理层子层的是
LLC是逻辑链路控制的缩写是数据链路层的子层不属于物理层的子层
12、TCP适用于对数据完整性要求很高的场景
TCP适用于对数据完整性要求很高的场景比如文件传输等视频直播不属于对数据完整性要求较高的场景在传输视频时丢失一些数据比如像素点影响不会很大。
13、在TCP协议首部中保留位之后有 6 个标志位分别是URG/ACK/PSH/RST/SYN/FIN
保留位之后有 6 个标志位作用分别如下
①、URG 首部中的紧急指针字段标志如果是 1 表示紧急指针字段有效。 ②、ACK 只有当 ACK1 时确认序号字段才有效。 ③、PSH 当 PSH1 时接收方应该尽快将本报文段立即传送给其应用层。 ④、RST 当 RST1 时表示出现连接错误必须释放连接然后再重建传输连接。复位比特还用来拒绝一个不法的报文段或拒绝打开一个连接。 ⑤、SYN SYN1ACK0 时表示请求建立一个连接携带 SYN 标志的 TCP 报文段为同步报文段。 ⑥、FIN 为 1 表示发送方没有数据要传输了要求释放连接。
14、关于数据链路层中MII接口
MII接口中 RX_CLK和TX_CLK均是由PHY提供的
15、在以太网通信中当前网络中的主流程序设计都是使用 socket 进行编程的在Linux中socket()函数原型是int socket(int domain, int type, int protocol)
socket()函数类似于 open()函数它用于创建一个网络通信端点如果成功则返回一个网络文件描述符通常把这个文件描述符称为 socket 描述符这个 socket 描述符跟文件描述符一样后续的操作都有用到它把它作为参数通过它来进行一些读写操作。该函数包括 3 个参数
参数 domain 用于指定一个通信域这将选择将用于通信的协议族。
参数 type 指定套接字的类型。
参数 protocol 通常设置为 0表示为给定的通信域和套接字类型选择默认协议。
16、在Linux以太网通信中内核提供了专门用于网络通信数据的读取函数recvrecv()函数原型是ssize_t recv(int sockfd, void *buf, size_t len, int flags)
在Linux中不论是客户端还是服务器都可以通过 revc()函数读取网络数据它与 read()函数的功能是相似的。参数sockfd 指定套接字描述符参数 buf 指向了一个数据接收缓冲区参数 len 指定了读取数据的字节大小参数 flags 可以指定一些标志用于控制如何接收数据。这些标志如下所示 MSG_CMSG_CLOEXEC 为 UNIX 域套接字上接收的文件描述符设置执行时关闭标志 MSG_DONTWAIT 启动非阻塞操作相当于 O_NONBLOCK MSG_ERRQUEUE 接收错误信息作为辅助数据 MSG_OOB 如果协议支持获取带外数据 MSG_PEEK 返回数据包内容而不真正取走数据包 MSG_TRUNC 即使数据包被截断也返回数据包的长度 MSG_WAITALL 等待知道所有的数据可用仅 SOCK_STREAM
17、在以太网通信中当两个设备建立连接后我们可以使用ping 命令来测试网络可达性tracert 命令用来显示到达目的主机的路径。这两个命令是基于哪个协议的
在以太网通信中ping 和 tracert是两个常用网络管理命令ping 用来测试网络可达性tracert 用来显示到达目的主机的路径。ping和 tracert 都利用 ICMP 协议来实现网络功能。ICMP协议是一种面向无连接的协议用于传输出错报告控制信息。主要用于在主机与路由器之间传递控制信息包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时会自动发送ICMP消息。ARP 协议是以太网地址解析协议IGMP 协议用于网络组管理可以实现多播数据的接收SNMP简单网络管理协议。
18、在以太网通信中 关于OSI 参考模型中每一层的作用
应用层应用层Application Layer是 OSI 参考模型中的最高层是最靠近用户的一层为上层用户提供应用接口也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有HTTP、FTP、TFTP、SMTP、SNMP、DNS、TELNET、HTTPS、POP3、DHCP。
表示层表示层Presentation Layer提供各种用于应用层数据的编码和转换功能确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要该层可提供一种标准表示形式用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩/解压缩和加密/解密提供网络的安全性也是表示层可提供的功能之一。 会话层会话层Session Layer对应主机进程指本地主机与远程主机正在进行的会话。会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。将不同实体之间表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信并对数据交换进行管理。 传输层传输层Transport Layer定义传输数据的协议端口号以及端到端的流控和差错校验。该层建立了主机端到端的连接传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务包括差错校验处理和流控等问题。我们通常说的TCP、UDP 协议就工作在这一层端口号既是这里的“端”。 网络层进行逻辑地址寻址实现不同网络之间的路径选择。本层通过 IP 寻址来建立两个节点之间的连接为源端发送的数据包选择合适的路由和交换节点正确无误地按照地址传送给目的端的运输层。网络层也就是通常说的 IP 层。该层包含的协议有IPIpv4、Ipv6、ICMP、IGMP 等。 数据链路层数据链路层Data Link Layer是 OSI 参考模型中的第二层负责建立和管理节点间逻辑连接、进行硬件地址寻址、差错检测等功能。将比特组合成字节进而组合成帧用 MAC 地址访问介质错误发现但不能纠正。
物理层物理层Physical Layer是 OSI 参考模型的最低层物理层的主要功能是利用传输介质为数据链路层提供物理连接实现比特流的透明传输物理层的作用是实现相邻计算机节点之间比特流的透明传送尽可能屏蔽掉具体传输介质和物理设备的差异。
19、在以太网通信中TCP 协议在建立连接、断开连接以及数据传输过程中都会呈现出现不同的状态不同的状态采取的动作也是不同的TCP状态包括
TCP 拥有以下状态 CLOSED 状态
LISTENING 状态
ESTABLISHED 状态
TIME_WAIT 状态
SYN_SENT 状态( 客户端状态)
SYN_REVD 状态( 服务端状态)
FIN_WAIT_1 和 和 FIN_WAIT_2 状态
CLOSE_WAIT 状态
LAST_ACK 状态
20、在以太网通信中一个主机和另一个主机进行直接通信必须要知道目标主机的MAC地址
在局域网中网络中实际传输的是“帧”帧里面是有目标主机的MAC地址的。在以太网中一个主机和另一个主机进行直接通信必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址查询目标设备的MAC地址以保证通信的顺利进行。ICMP 协议用于网络调试与维护。IGMP 协议用于网络组管理可以实现多播数据的接收。SNMP是简单网络管理协议。
21、TCP与UDP的主要区别
TCP面向连接UDP是无连接的。
TCP面向字节流UDP是面向报文的。
TCP只支持一对一UDP支持一对一或者一对多。
TCP保证数据正确性UDP可能丢包TCP保证数据顺序UDP不保证。
22、以太网中所有的站点共享一个通信信道因为多个站点可以同时向网络上发送数据所以需要一些检测机制
以太网中所有的站点共享一个通信信道在发送数据的时候站点将自己要发送的数据帧在这个信道上进行广播以太网上的所有其他站点都能够接收到这个帧因为多个站点可以同时向网络上发送数据在以太网中使用了CSMA/CD协议来减少和避免冲突。需要发送数据的工作站要先侦听网络上是否有数据在发送如果有的只有检测到网络空闲时工作站才能发送数据。当两个工作站发现网络空闲而同时发出数据时就会发生冲突。这时两个站点的传送操作都遭到破坏工作站进行1-坚持退避操作。退避时间的长短遵照二进制指数随机时间退避算法来确定。
23、在以太网通信中当服务器程序accept()函数与远程客户端之间建立连接后accept()函数返回
当有客户端连接请求到达时accept()函数与远程客户端之间建立连接accept()函数返回一个新的套接字。这个套接字与 socket()函数返回的套接字并不同socket()函数返回的是服务器的套接字以服务器为例而accept()函数返回的套接字连接到调用 connect()的客户端服务器通过该套接字与客户端进行数据交互譬如向客户端发送数据、或从客户端接收数据。理解 accept()函数的关键点在于它会创建一个新的套接字其实这个新的套接字就是与执行connect()客户端调用 connect()向服务器发起连接请求的客户端之间建立了连接这个套接字代表了服务器与客户端的一个连接
24、物理层的主要功能是
利用传输介质为数据链路层提供物理连接实现比特流的透明传输物理层的作用是实现相邻计算机节点之间比特流的透明传送尽可能屏蔽掉具体传输介质和物理设备的差异。网络数据信号的传输是通过物理层实现的通过物理介质传输比特流。物理层规定了物理设备标准、电平、传输速率等。常用设备有集线器、中继器、调制解调器、网线、双绞线、同轴电缆等。路由器属于网络层设备。
25、不属于以太网MAC帧中FCS字段校验范围的是
根据IEEE802.3协议规定FCS校验范围包括目的地址、源地址、Length/Type字段、DATA/PAD字段不包括前导码、定界符。
26、在Linux以太网通信中send()函数用来发送数据 send()可以通过参数 flags 指定一些标志来改变处理传输数据的方式。关于这些flag描述不正确的是
send 和 write 很相似但是 send 可以通过参数 flags 指定一些标志来改变处理传输数据的方式。这些标志如下所示
MSG_CONFIRM 提供链路层反馈以保持地址映射有效 MSG_DONTROUTE 勿将数据包路由出本地网络 MSG_DONTWAIT 允许非阻塞操作等价于使用 O_NONBLOCK MSG_EOR 如果协议支持标志记录结束 MSG_MORE 延迟发送数据包允许写更多数据 MSG_NOSIGNAL 在写无连接的套接字时不产生 SIGPIPE 信号 MSG_OOB 如果协议支持发送带外数据
27、在以太网通信中以太网数据帧结构不包括
以太网中的帧格式定义了站点如何解释从物理层传来的二进制串即如何在收到的数据帧中分离出各个不同含义的字段。以太网帧结构包括6字节的源站MAC地址、6字节的目标站点MAC地址、2字节的协议类型字段、数据字段以及帧校验字段MAC地址是一个六个字节长的二进制序列全球唯一的标识了一个网卡。
28、在以太网通信中如果调用 accept()函数时并没有客户端请求连接此时 accept()会 accept()函数通常只用于服务器应用程序中如果调用 accept()函数时并没有客户端请求连接即等待连接队列中也没有等待连接的请求此时 accept()会进入阻塞状态直到有客户端连接请求到达为止。当有客户端连接请求到达时accept()函数与远程客户端之间建立连接accept()函数返回一个新的套接字
29、在微型嵌入式操作系统中以太网通信常用的协议栈就是LWIPLWIP是瑞典计算机科学院(SICS)的Adam Dunkels等开发的一个小型开源的TCP/IP协议栈。LWIP 是轻量级 IP 协议有无操作系统的支持都可以运行。
LWIP 支持的网络协议主要包括 ARP 协议以太网地址解析协议 IP 协议包括 IPv4 和 IPv6支持 IP 分片与重装支持多网络接口下数据转发 ICMP 协议用于网络调试与维护 IGMP 协议用于网络组管理可以实现多播数据的接收 UDP 协议用户数据报协议 TCP 协议支持 TCP 拥塞控制RTT 估计快速恢复与重传等DNS域名解析 SNMP简单网络管理协议 DHCP动态主机配置协议 AUTOIPIP 地址自动配置 PPP点对点协议支持 PPPoE。
30、在以太网通信中常用的就是TCP协议TCP是一种面向连接的、可靠的、基于 IP 的传输协议。关于TCP描述
关于 TCP 协议我们需要理解的重点如下 ①、TCP 协议工作在传输层对上服务 socket 接口对下调用 IP 层 ②、TCP 是一种面向连接的传输协议通信之前必须通过三次握手与客户端建立连接关系后才可通信 ③、TCP 协议提供可靠传输不怕丢包、乱序。 TCP 连接一旦建立就可以在连接上进行双向的通信。任何一个主机都可以向另一个主机发送数据数据是双向流通的所以 TCP 协议是一个全双工的协议
31、在网络通信中端口号本质上就是一个数字编号用来在一台主机中唯一标识一个能上网的进程端口号的取值范围为 0~65535。很多常见的服务器它都有特定的端口号
HTTP 服务端口号为 80 超文本传输协议 FTP 服务端口号为 21 文件传输协议使得主机间可以共享文件 SMTP 服务端口号为 25 简单邮件传输协议它帮助每台计算机在发送或中转信件时找到下一个目的地。 TFTP 服务端口号为69 简单文件传输协议主机之间进行简单文件传输 SSH 服务端口号为22 安全外壳协议专为远程登录会话和其他网络服务提供安全性的协议 Telnet 服务端口号为 23 终端远程登录协议它为用户提供了在本地计算机上完成远程主机工作的能力。
32、以太网通信中当数据由上层发送到传输层时数据会被封装为 TCP 数据段我们将其称为 TCP 报文TCP 报文由 TCP 首部数据区域组成。TCP首部信息不包括 TCP 报文由 TCP 首部数据区域组成一般 TCP 首部通常为 20 个字节大小 33、ARP协议中的免费ARP说法错误
免费 ARP可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后如果收到了 ARP 响应报文则说明网络内已经存在使用该 IP 地址的主机。
34、以下关于以太网MAC帧组成错误的是
根据802.3协议规定校验字段长度是4字节采用CRC校验方式
35、在以太网通信中IP 地址用于标识互联网中的每台主机的身份关于IP地址描述不正确的是
传统的 IP 地址是一个 32 位二进制数的地址也叫 IPv4 地址由 4 个 8 位字段组成。除了 IPv4 之外还有 IPv6IPv6 采用 128 位地址长度8 个 16 位字段组成本小节我们暂时不去理会 IPv6 地址。在网络通信数据包中IP 地址以 32 位二进制的形式表示而在人机交互中通常使用点分十进制方式表示譬如 192.168.1.1这就是点分十进制的表示方式。IP 地址中的 32 位实际上包含 2 部分分别为网络地址和主机地址可通过子网掩码来确定网络地址和主机地址分别占用多少位。
36、在Linux以太网通信中connect()函数原型是int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) 该函数用于客户端应用程序中客户端调用 connect()函数将套接字 sockfd 与远程服务器进行连接参数 addr 指定了待连接的服务器的 IP 地址以及端口号等信息参数 addrlen 指定了 addr 指向的 struct sockaddr对象的字节大小。客户端通过 connect()函数请求与服务器建立连接对于 TCP 连接来说调用该函数将发生 TCP 连接的握手过程并最终建立一个 TCP 连接而对于 UDP 协议来说调用这个函数只是在 sockfd 中记录服务器IP 地址与端口号而不发送任何数据。
37、在Linux以太网通信中也可以通过 read()函数可以从一个socket描述符中读取指定字节大小的数据。关于read函数
read是文件I/O中的操作函数在Linux中也可以通过 read()函数可以从一个socket描述符中读取指定字节大小的数据。套接字描述符也是文件描述符所以使用 read()函数读取网络数据时read()函数的参数 fd 就是对应的套接字描述符。read()调用成功将返回读取到的字节数此返回值受文件剩余字节数限制当返回值小于指定的字节数时并不意味着错误这可能是因为当前可读取的字节数小于指定的字节数比如已经接近文件结尾或者正在从管道或者终端读取数据或者 read()函数被信号中断等出错返回-1 并设置 errno如果在调 read 之前已到达文件末尾则这次 read 返回 0
38、在以太网通信中我们有时候需要在点分十进制字符串和二进制地址之间进行转换。如果我们想将点分十进制表示的字符串形式转换成二进制Ipv6 地址。则可以调用函数
inet_pton()函数和inet_aton()函数都可以将点分十进制表示的字符串形式转换成二进制 Ipv4地址但是inet_aton()函数不能转换成Ipv6 地址inet_pton()可以。inet_ntop和inet_ntoa 函数是反过来的。