`
huangyongxing310
  • 浏览: 498464 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多
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


以太网帧格式













目标地址: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




  • 大小: 21.9 KB
  • 大小: 38.3 KB
  • 大小: 61.4 KB
  • 大小: 29.6 KB
分享到:
评论

相关推荐

    VC++网络通信基础知识实例

    在VC++环境中进行网络通信是软件开发中的一个重要领域,尤其对于初学者来说,理解并实践这一领域的基础知识至关重要。本教程“VC++网络通信基础知识实例”旨在帮助初学者掌握网络编程的基本概念、技术和应用。 首先...

    移动通信基站基础知识.pdf

    本文将深入探讨移动通信基站的基础知识,重点解析GSM基站的相关概念,包括其优化策略和维护要点,同时也会讨论基站建设对健康可能产生的影响。 ### 移动通信基站基础知识 移动通信基站,又称基站收发信台(Base ...

    通信网络基础知识.ppt

    "通信网络基础知识" ...通信网络基础知识是一个非常广泛的领域,涵盖了计算机网络和通信技术的多方面知识。它对计算机网络和通信技术的发展产生了深远的影响,对我们的生活和工作产生了深刻的影响。

    网络通信线路基础知识培训.ppt

    网络通信线路基础知识培训.ppt

    通信原理基础知识

    通信原理基础知识,计算机专业专业教程,全面解读通信基本原理,

    通信基础知识.ppt

    通信基础知识.ppt通信基础知识.ppt通信基础知识.ppt通信基础知识.ppt通信基础知识.ppt通信基础知识.ppt

    移动通信基站基础知识

    移动通信基站基础知识是理解现代通信网络的关键之一。它涉及到无线通信技术、网络架构以及频谱管理等多个方面。本文将深入探讨这些主题,帮助读者建立起对移动通信基站的全面认识。 首先,我们需要了解移动通信系统...

    计算机通信与网络技术 基础知识课件

    计算机通信与网络技术 基础知识课件 还行,挺不错的,希望对你有用啊。。。

    网络通信基础知识.docx

    网络通信基础知识.docx

    数据通信基础知识

    本资料包涵盖了数据通信的基础知识,旨在帮助初学者理解和掌握这一关键领域的基本概念和原理。 一、数据通信基础 1. 定义:数据通信是指在两个或多个设备之间通过信道传输数据的过程。这些设备可以是计算机、...

    数据通信的基础知识数据通信的基本知识数据通信的基本知识

    从数据通信的基础理论到具体的实现技术,再到企业网络中提高效率的高级协议,数据通信技术的不断进步推动了整个信息技术领域的革新和发展。随着技术的不断进步和创新,未来数据通信将会更加智能化、多样化,更好地...

    移动通信网络基础知识ppt课件.ppt

    移动通信网络基础知识是移动通信领域中的一个重要概念,它涵盖了移动通信的基本理论、技术和应用。移动通信网络基础知识是学习移动通信技术的基础,它为学习者提供了一个系统的概述和理解移动通信技术的整个过程。 ...

    网络通信基础知识ppt课件.ppt

    网络通信基础知识 本课程旨在介绍网络通信的基本概念和原理,帮助学生理解网络结构、局域网和广域网的概念、ISO OSI参考模型的基本结构等。通过学习本课程,学生将掌握网络概述、OSI参考模型、局域网和广域网的基本...

    通信网络全局认识

    ### 通信网络全局认识 #### 一、全业务的概念和范围 **全业务运营**的概念在通信行业中至关重要,它标志着运营商能够提供全方位的服务,满足用户的多元化需求。 ##### 狭义的全业务运营 狭义上的全业务运营指的...

    西门子工业网络通信指南上册

    该指南上册重点介绍了西门子工业控制产品中网络技术的应用,内容可能涉及了网络通信的基础知识、网络硬件、网络协议、网络架构设计以及故障诊断和维护等方面。例如,西门子的工业网络通信可以基于多种不同的网络协议...

    通信网络基础知识,授课专用

    根据给定文件的信息,我们可以提炼出以下通信网络基础知识的关键知识点: ### 1. 课程信息 #### 教材与参考书 - **教材**: 《通信网络基础》(作者:李建东、盛敏、李红艳) - **参考书**: 《Data Networks》...

    无线通信基础知识

    无线通信基础知识第一章节,对无线通信的基础知识进行介绍

    李建东盛敏版通信网络基础课后习题答案完整版

    通信网络基础是IT领域的核心学科之一,它涉及到计算机网络、数据通信和信息技术等广泛的知识领域。以下是对文件内容的知识点详细说明: 1. 通信网络的基本构成:通信网络是由子网和终端构成的,其中子网包括传输...

Global site tag (gtag.js) - Google Analytics