如何管理路由器无线网络设置

本文介绍了路由器中数据包传输和交换的基本知识。只要我们理解这一点,它将帮助您配置一个良好的网络环境。


一、投入问题


1。原始套接字可以接收任何TCP或UDP消息。


2、如果你想得到原始套接字接口,第一包接受必须要有一个正确的IP报头,否则不能进行检查和核实,包头ip_rcv()。


3,在数据包接收过程由原始套接字,内核会检查并确认接收的IP数据包,但它不会检测和验证IP封装后的任何领域。例如,当我们创建原始套接字接口,指定的协议参数ipproto_tcp,和内核不进行TCP校验和验证。相反,我们将所有数据包从IP协议字段复制到TCP,并将其提交到原始套接字接口。


4,与原始套接字接收的TCP数据包是IP重组后由TCP进行排序的所有以前的消息。


5,如果原始套接字接口指定的协议参数不是零,(套接字的第三个参数),接收的数据报的数据字段应该与它匹配,否则数据包不传递给接口集合。


6,如果原始套接字接口绑定到本地IP地址,接收的数据报的目的IP地址应与绑定的IP地址相匹配,否则数据包将不被传输到套接字。


7,如果原始套接字接口通过连接指定另一方的IP地址,则所接收的包的源IP地址应与连接地址相匹配,否则该包将不被传输到套接字。


8,如果通过协议参数0创建原始套接字接口,并且不调用连接或绑定,则接口将接收由内核发送到原始套接字的每个原始数据报的副本。


9、原始套接字接口接收不到任何ARP和RARP协议式插座接口,因为net_rx_action()将ARP或RARP协议类型数据包的接收ARP功能的类,而不通过接收函数ip_rcv()的IP层。


10,原始套接字接口不能接收任何ICMP类型的数据包,因为在传输到原始套接字之前,系统已经回答了一些ICMP类型包,而不再传输到上层。


11,如果另一方的分组被划分,则接收原始IP分组,因为原始套接字的接收位于IP的上层。


二、产出问题


1、常见的输出通常是通过发送邮件或发送短消息,和目的IP地址为指定的。如果插座接口连接,它也可以打电话和写信,writev或发送。


2、如果没有设置ip_hdrincl选项,数据起始地址由内核写的IP头后的第一个字节。在这种情况下,内核将构建IP报头和确保它是从处理前的数据。内核设置的IPv4报头协议字段的第三个参数使用者可以调用socket函数时。


3、如果ip_hdrincl选项已被设置,数据地址由内核写的IP头的第一个字节。用户所提供的资料必须包括IP报头。在这种情况下,过程构成整个IP报头,除了以下两项:IPv4标记字段可以设置为0、需要内核设置的价值。只有当字段为0,内核是集,IPv4报头校验和的计算和存储的核心。


4、如果协议类型时指定的原始套接字接口创建,即第三参数的协议,这并不是说数据包类型只能被发送。例如,如果指定为ipproto_tcp协议UDP报文的发送,也可以用户自己组装,但如果没有设置ip_hdrincl选项,然后在IP核的消息将返回到TCP协议字段指示消息(但此时却为UDP报文)。


该包被发送到另一个TCP层,它通常被丢弃,因为它不能找到合适的TCP套接字来接收数据包。但是,包可以在目标主机的原始设置接口上接收。


5。如前所述,在任何时候,IP报头的校验和是由内核设置的。







6,在任何时候,内核不会验证和验证IP封装后的领域。例如,即使我们指定要ipproto_tcp第三参数协议,内核不检查、计算和验证TCP发送数据时。


7、如果ip_hdrincl选项已被设置,按照惯例,我们应该建立自己的IP头,但是即使我们没有设置IP头,我们仍然可以完成数据发送使用sendto或sendmsg和指定的目标IP地址。但这样的包不能用原始套接字接口目标机器收到,因为在ip_rcv(),IP报头的校验应验证,并应分析,这样的包将被丢弃,但包应该能够在链路层收到。


8、如果ip_hdrincl选项设置,和分组长度太长,数据将被丢弃,将返回错误的代码。如果emsgsize。选项没有设置,并且包长度太长,包将被分成片。如果ip_hdrincl选项太长,


由于数据包具有上述结构,所以计算机与TCP/IP协议之间的通信可以相互通信。当使用基于TCP/IP协议的网络时,数据包实际上是在网络中传输的。