欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网络通信相关基础知识的认识(一篇读懂网络相关内容)

程序员文章站 2022-07-02 17:50:43
...
TCP/IP协议:就是的网络中的计算机与计算机之间进行数据通信的一种约定方式,要不然谁知道你是要发关给我的呀。


端口:一个应用程序会占有系统一个端口来进行对网卡的访问,端口号的有限的(65535),部分已经被固定功能用了,一个端口号只能分配给一个应用程序用。


socket:是对TCP/IP进行封装的网络通信API,socket是源IP+端品和目标IP+端口惟一确定的,所以系统可以有很多的socket(与端口号不一样)。


路由器也有自己的IP(内网第一个保留作为它的IP),和MAC地址。


NAT工作流程(Network Address Translation)
NAT的作用是把内网IP+端口改为外网IP+端口(这人端口号也是要申请的,用于区分不同主机用)用的,
NAT会在内部建立一张内网IP+端口和外网IP+端口的映射表,使后面服务器返回来的数据是给那个内部
主机的作准备。

1.主机用内网IP+端口号申请访问外网服务器,数据包发送给NAT(路由器)。
2.NAT解析是发送到外网的,向NAT申请一个端口号,并建立内网IP+端口和外网IP+端口的映射表条目。
并把数据包中的源IP和端口号更改为外网IP+端口,再形成新的数据包,发送到外网要访问的服务器上。
3.服务器得到请求,将数据打包发送回NAT。
4.NAT接收到数据包,解析对比内网IP+端口和外网IP+端口的映射表中的内容,再把外网IP+端口改为
内网IP+端口,再发送到原来请求的机器,这样原来请求的机器就接收到访问外网的数据了。

参考原文:http://blog.sina.com.cn/s/blog_9d386e13010175rq.html


以太网帧格式

网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 



网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 


网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 

网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 


目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。


MAC地址表,路由器保存的MAC与接口的关系表。
ARP缓存表,计算机保存的IP、MAC关系表。
路由表:路由器保存的网段与接口的关系表。



ARP协议的工作流程
主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

主机A要与主机B通信工作流程:
1.A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址(IP、MAC关系)。
2.A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址,从而将ARP请求帧广播到本地网络上的所有主机,
源主机A的IP地址和MAC地址+目标IP和目标MAC(是12个F)(这个是广播包里有内容),本地网络上的每台主机都
接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它
将丢弃ARP请求。
3.主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。
4.主机B将包含其MAC地址的ARP回复消息直接发送回主机A。(因为有了目标IP和目标MAC,所以可以直接发送了)
5.当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存
期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

网卡接收到数据包时,如果MAC地址不是给自己的就是丢掉,所以跨网络时ARP请求不再是以广播的形式进行得到,而是
要以数据报的形式由路由器发到了目标,目标之后返回ARP请求回应来处理的。

跨网络时
1.发现不在同一网段,封装成ARP请求数据包发送给路由器(如果不知路由器MAC则进行ARP请求得到,它们在同一网段内,
可以广播得到MAC)。
2.路由器收到这个包,查看是否是自已的IP,如果不是就查看路由表进行数据的转发(如果不知路由器MAC则进行ARP请求得到,它们在同一网段内,
可以广播得到MAC)。如果路由表中不存在网段与接口的关系就从默认接口车发出去。
3.直到最后有路由发现这个IP是自己的网段IP时就发送这个数据包给它(如果不知目标MAC则进行ARP请求得到,它们在同一网段内,
可以广播得到MAC)。
4.目标接收到这个ARP数据包后就向源源发送这个ARP请求应答,使源机得到目标的IP和MAC,存放到源机本地的ARP缓存中。
5.以后双方就可以直接进行数据包发送了,不用再进行ARP请求了。

参考原文:http://www.xpc8.com/wd/xpc8044856.html


路由器:提路由的功能,就是根据目的地IP决定将数据包发送到那个路由器或服务器的功能。
路由器通过路由表决定数据包应发向下一站的IP,一直到达目标机器,转发过程中也是路由器路由表的生成过程(保存到路由器本地方便下一次查找),如果路由表中没有就从默认端口进行转发出去。
路由器转发过程中会解析数据包中的转发IP地址的,但数据包中的源和目标IP和端口号都是不变的,但转发过程中的以太网数据帧的MAC地址的变化的,因为网络最底层(机器与机器之间的数据通信是以MAC地址进行的)的数据通信是通过MAC地址来惟一确的。


DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,用于动态进行IP地址的分配。

DHCP Client:DHCP客户端,通过DHCP协议请求IP地址的客户端。
DHCP Server:DHCP 服务端,负责为DHCP客户端提供IP地址,并且负责管理分配的IP地址。

DHCP工作原理:
1.发现阶段:客户端发送DHCP Discovery,因为DHCP Server对应于DHCP客户端是未知的,所以DHCP客户端
发出的DHCP Discovery报文是广播包,源地址为0.0.0.0目的地址为255.255.255.255。网络上的所有支持
TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。
如果网络中存在多个DHCP Server,则多个DHCP Server均会回复该DHCP Discovery报文。

2.DHCP Server 提供阶段:DHCP Server收到DHCP Discovery报文后,解析该报文请求IP地址所属的Subnet。
并从dhcpd.conf文件中与之匹配的subnet中取出一个可用的IP地址,从可用地址段选择一个IP地址后,首先发
送ICMP报文来ping该IP地址,如果收到该IP地址的ICMP报文,则抛弃该IP地址,重新选择IP地址继续进行
ICMP报文测试,直到找到一个网络中没有人使用的IP地址,用以达到防治动态分配的IP地址与网络中其他设备
IP地址冲突,这个IP地址冲突检测机制,可配置),设置在DHCP Discovery报文中yiaddress字段中,表示为该
客户端分配的IP地址,并且为该Lease设置该Subnet配置的Option,例如默认leases租期,最大租期,router
等信息。

3.DHCP Client 选择阶段:DHCP Client收到若干个DHCP Server响应的DHCP Offer报文后,选择其中一个
DHCP Server作为目标DHCP Server。选择策略通常为选择第一个响应的DHCP Offer报文所属的DHCP Server。

然后以广播方式回答一个DHCP Request报文,该报文中包含向目标DHCP请求的IP地址等信息。之所以是以广
播方式发出的,是为了通知其他DHCP Server自己将选择该DHCP Server所提供的IP地址。

4.DHCP Server确认阶段:当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client
提供的IP地址后,便向该DHCP Client响应一个包含该IP地址以及其他Option的报文,来告诉DHCP Client可
以使用该IP地址了。然后DHCP Client即可以将该IP地址与网卡绑定。另外其他DHCP Server都将收回自己之
前为DHCP Client提供的IP地址。

5.DHCP Client重新登录网络:当DHCP Client重新登录后,发送一个以包含之前DHCP Server分配的IP地址
信息的DHCP Request报文,当DHCP Server收到该请求后,会尝试让DHCP客户端继续使用该IP地址。并回答
一个ACK报文。

但是如果该IP地址无法再次分配给该DHCP Client后,DHCP回复一个NAK报文,当DHCP Client收到该NAK报
文后,会重新发送DHCP Discovery报文来重新获取IP地址。

6.DHCP Client更新租约:DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,
所以如果DHCP Client如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,当当前租约期限
过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。




socket就是设备


参考原文:http://network.51cto.com/art/201406/441752.htm

https://www.cnblogs.com/wangcq/p/3520400.html




  • 网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 
  • 大小: 21.9 KB
  • 网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 
  • 大小: 38.3 KB
  • 网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 
  • 大小: 61.4 KB
  • 网络通信相关基础知识的认识(一篇读懂网络相关内容)
            
    
    博客分类: 网络 NAT路由器socketARP以太网帧格式 
  • 大小: 29.6 KB