精华内容
下载资源
问答
  • 常见网络通信协议

    千次阅读 2021-06-08 17:59:28
    常见网络通信协议 应用层 TCP 常见使用TCP协议的应用层服务 HTTP: 超文本传输协议(版本1) SMTP: 简单邮件传输协议 XMPP: 可扩展和通讯表示协议 HTTP2: 超文本传输协议(版本2) FTP: 文件传输协议 POP3: 邮局协议(第...

    常见网络通信协议

    应用层

    TCP

    常见使用TCP协议的应用层服务
    • HTTP: 超文本传输协议(版本1)
    • SMTP: 简单邮件传输协议
    • XMPP: 可扩展和通讯表示协议
    • HTTP2: 超文本传输协议(版本2)
    • FTP: 文件传输协议
    • POP3: 邮局协议(第三版)
    • NNTP: 网络新闻传输协议
    • Finger: 用户信息协议
    • TELNET: TCP/IP远程终端协议
    • IMAP4: 因特网信息访问协议(第四版)
    Unix网络服务
    • LPR: Unix远程打印协议
    • Rwho: Unix远程Who协议
    • Rsync: 远程数据同步
    • Rlogin: Unix远程登录协议
    • RSH: Unix远程Shell协议
    • Rexec: Unix远程执行协议
    数据库协议
    • TDS: 表格数据流协议
    • MySQL: 关系型数据库协议
    • MongoDB: 非关系型数据库协议
    • TNS: 透明网络基板协议
    • DRDA: 分布式关系数据库架构协议
    • PostgreSQL: 关系型数据库协议
    HP网络服务
    • RPC: 远程过程调用协议
    • RDA HP: 远程数据库访问协议
    • RFA HP: 远程文件访问协议
    • VT: 虚拟终端仿真协议
    • NTF HP: 网络文件传输协议
    直播流媒体类协议
    • RTMP: 实时消息协议
    • HSL: 基于HTTP的流媒体网络传输协议
    • FLV: Flash Video 流媒体
    区块链
    • Bitcoin: 比特币加密协议
    通讯类协议
    • LWS: 钉钉端到端加密通信私有协议
    • KaKaoTalk: KaKaoTalk软件即时通讯私有协议
    其他
    • X-Window: X窗口系统协议
    • DIAMETER: 计算机网络认证协议
    • MPBGP: 多协议扩展边界网关协议
    • HTTPS: 安全超文本传输协议
    • CMOT: 基于TCP/IP的CMIP协议

    TCP/UDP

    同时使用TCP和UDP协议的应用层服务
    • SOCKS: 安全套接字协议
    • FANP: 流属性通知协议
    • STUN: NAT的会话工具协议
    • DNS: 域名解析协议
    • SLP: 服务定位协议
    • IPFIX: IP数据流信息导出协议
    • RADIUS: 远程用户拨号认证服务协议
    • eDonKey: 文件共享网络协议
    通讯类协议
    • MSN: MSN消息服务协议
    • WickrMe: WickrMe软件即时通讯私有协议
    • Line: Line软件即时通讯私有协议
    • QQ: 通讯QQ软件即时通讯私有协议
    • WeChat: 腾讯微信软件即时通讯私有协议
    • Skype: 微软Skype软件即时通讯私有协议
    • Twitter: Twitter软件即时通讯私有协议
    • Signal: Signal软件即时通讯私有协议
    游戏类协议
    • WOW: 暴雪娱乐魔兽世界游戏私有协议
    • Xbox: Xbox家用电视游戏私有协议
    • LOL: 腾讯英雄联盟游戏私有协议
    远程控制类协议
    • TeanViewer: GmbH TeamViewer软件远程连接控制私有协议
    • PcAnywhere: Symantec PcAnywhere软件远程连接控制私有协议
    其他私有协议
    • Thunder: 迅雷下载私有协议
    • Spotofy: 音频软件私有协议
    • Dropbox: Dropbox办公软件私有协议
    • TikTok: 抖音短视频软件私有协议
    区块链
    • BitTorrent: 内容分发协议
    SUN
    • NFS: 网络文件系统协议
    • R-STAT: SUN远程状态协议
    • PMAP: SUN端口映射协议
    • Mount: NFS初始句柄加载协议
    • NSM: SUN网络状态监测协议
    • NIS: SUN网络信息系统协议

    UDP

    网络流量分析协议
    • NetFlow: 网络流量分析协议
    • sFlow: 网络监测分析协议
    常见使用UDP协议的应用层服务
    • BOOTP: 引导协议
    • NTP: 网络时间协议
    • DHCP: 动态主机配置协议
    • TFTP: 简单文件传输协议
    音频会议类协议
    • Zoom: Zoom音视频通讯协议
    • WeLink: 华为云WeLink音视频通信协议
    • TRTC: 腾讯低延时实时音视频协议
    • G-Net: G-Net全时云音视频通讯协议
    • Zego: Zego即构实时音视频协议通信协议
    其他
    • MPEG_TS: 音效数据通讯协议
    • DHCPv6: IPv6动态配置协议
    • CAPWAP: 无线接入点的控制和配置协议
      • DTLS: 传输层安全协议
      • IEEE802.11协议簇
    • SNMP: 简单网络管理协议
    • HTTP3: 超文本传输协议(版本3)

    5G协议

    SCTP
    • NGAP: NG接口应用协议
    • XnAP: Xn接口应用协议
    • F1AP: F1接口应用协议
    • E1AP: E1接口应用协议
    展开全文
  • 常用网络通信协议结构图分别详细的画出了OSI的七层网络结构图和TCP/IP的五层结构图. 对每一层具体协议有明确说明,对网络编程具有很大的参考意义。 每一层包含哪些网络协议,每个协议是什么意思都有明确说明,值得...
  • 根据OSI分层,将各个协议及之间关系标注在一张图里。网络工程师考试必备。
  • 常用网络通信协议结构图

    千次阅读 2017-06-28 23:30:04
  • 计算机网络通信常用的相关协议

    千次阅读 2018-07-20 14:42:47
     TCP/IP是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合  TCP是传输控制协议,用于从应用程序到网络的数据传输控制,负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。  IP...

    1、TCP/IP(Transmission Control Protocol /Internet Protocol)协议

      TCP/IP是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合

      TCP是传输控制协议,用于从应用程序到网络的数据传输控制,负责在数据传送之前将它们分割为 IP 包,然后在它们到达的时候将它们重组。

      IP是网际协议,负责计算机之间的通信,负责在因特网上发送和接收数据包。

    2、HTTP(Hyper Text Transfer Protocol)协议

      HTTP协议是超文本传输协议(Hyper Text Transfer Protocol),负责 web 服务器与 web 浏览器之间的通信,用于从 web 客户端向 web 服务器发送请求,并从 web 服务器向 web 客户端返回内容。

    3、HTTPS(Secure HTTP)协议

      HTTPS协议是安全的HTTP,在HTTP的基础上,增加了SSL(Secure Sockets Layer)协议,也就是安全套接字层,用于为安全数据传输加密数据。

    4、SMTP(Simple Mail Transfer Protocol)协议-----简易邮件传输协议,用于电子邮件的传输。

    5、MIME(Multi-purpose Internet Mail Extensions)协议-----多用途因特网邮件扩展,使 SMTP 有能力通过TCP/IP网络传输多媒体文件,包括声音、视频和二进制数据。

    6、IMAP(Internet Message Access Protocol)协议-----因特网消息访问协议,用于存储和取回电子邮件。

    7、POP(Post Office Protocol)协议-----邮局协议,用于从电子邮件服务器向个人电脑下载电子邮件。

    8、FTP(File Transfer Protocol)协议-----文件传输协议,负责计算机之间的文件传输。

    9、NTP(Network Time Protocol)协议-----网络时间协议,用于在计算机之间同步时间。

    10、DHCP(Dynamic Host Configuration Protocol)协议-----动态主机配置协议,用于向网络中的计算机分配动态 IP 地址。

    11、SNMP(Simple Network Management Protocol)协议-----简单网络管理协议,用于计算机网络的管理。

    12、LDAP(Lightweight Directory Access Protocol)协议-----轻量级的目录访问协议,用于从因特网搜集关于用户和电子邮件地址的信息。

    13、ICMP(Internet Control Message Protocol)协议-----因特网消息控制协议,负责网络中的错误处理。

    14、ARP(Address Resolution Protocol)协议-----地址解析协议,用于通过IP来查找基于IP地址的计算机网卡的硬件地址。

    15、RARP(Reverse Address Resolution Protocol)协议-----反向地址转换协议,用于通过IP查找基于硬件地址的计算机网卡的IP地址。

    16、BOOTP(Boot Protocol)协议-----自举协议,为局域网中的无盘工作站分配动态的IP地址,并不需要没个用户设置静态IP地址。

    17、PPTP(Point to Point Tunneling Protocol)协议-----点对点隧道协议,用于私人网络之间的连接。

    展开全文
  • 一张神图-软考网工必看-常用网络通信协议结构图
  • 本文介绍的是嵌入式系统中网络通信协议的选择方法和注意事项。
  •  本文就计算机网络通信协议、选择网络通信协议的原则、TCP/IP 通信协议的安装、设置和测试等,作进一步的研究和探讨。  1 网络通信协议  目前,局域网中常用的通信协议主要有:NetBEUI 协议、IPX/SPX兼容协议和...
  •  本文就计算机网络通信协议、选择网络通信协议的原则、TCP/IP 通信协议的安装、设置和测试等,作进一步的研究和探讨。  1 网络通信协议  目前,局域网中常用的通信协议主要有:NetBEUI 协议、IPX/SPX兼容协议和...
  • 10.1.1 T.30传真通信协议 10.1.2 HDLC信息包 10.1.3 传真字段 10.1.4 成串信息包 10.1.5 同步线路控制 10.1.6 传真的五个阶段介绍 10.2 传真Modem的分类 10.2.1 传真分类 10.2.2 一类传真Modem 10.2.3 二类...
  • 计算机网络协议——通信协议综述

    万次阅读 多人点赞 2019-09-03 23:20:58
    通信协议综述概述一、为什么学习网络协议1.1 常见网络协议二、网络分层的真正含义2.1 为什么网络要分层?2.2 浏览点击请求过程2.3 揭秘层与层之间的关系三、ifconfig 命令行的由来3.1 ip地址3.2 无类型域间选路...

    这个专栏的计算机网络协议,我是在极客时间上学习 已经有三万多人购买的刘超老师趣谈网络协议专栏,讲的特别好,像看小说一样学习到了平时很枯燥的知识点,计算机网络的书籍太枯燥,感兴趣的同学可以去付费购买,绝对物超所值,本文就是对自己学习专栏的总结,评论区可以留下你的问题,咱们一起讨论!


    概述

    本文也是根据专栏里的板块,对通信网络协议做一个综述,共分为四节去进行介绍;

    • 为什么学习网络协议?
    • 网络协议分层的真正含义;
    • ifconfig命令行的背后;
    • DHCP和PXE:ip的由来;

    一、为什么学习网络协议

    协议

    协议的三要素是:语法、语义、顺序
    连通互联网世界,只教给一台电脑做什么是不够的,需要教会一大片机器做什么,这就是网络协议。只有通过网络协议,才能够使得一大片机器互相协作、共同完成一件事。

    1.1 常见的网络协议

    采用一个下单购物的场景,看看整个过程运用了哪些网络协议。


    首先,在浏览器中输入一个网址www.taobao.com URL,浏览器只知道名字是www.taobao.com,但是不知道具体的地点,所以不知道该如何访问;

    于是,打开地址簿去查找,可以使用一般的地址簿DNS去查找,也可以采用更为精确的地址簿查找协议HTTPDNS

    无论哪一种查找,最后都会得到一个地址:106.114.134.24(任意赋值),这个是IP地址,相当于你在互联网世界中的“门牌号”。知道了目标地址,浏览器开始打包他们的请求。对于普通的浏览请求,往往会采用HTTP协议;但是对于购物的请求,往往需要进行加密传输,因而使用HTTPS协议。无论是什么协议,里面都会声明“你要买什么和买多少”。HTTP头中包含了请求的信息:

    HTTP
    DNS、HTTP、HTTPS所在的层为应用层;


    经过封装以后,浏览器会将应用层的包交给下一层去完成,然后通过socket编程来实现。下一层是传输层,传输层有两种协议:

    • 无连接的协议UDP
    • 面向连接的协议TCP

    对于支付来说,往往采用TCP协议,所谓的面向连接就是,TCP会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达;TCP协议中有两个端口,一个是浏览器监听的端口,一个是电商服务器监听的端口。操作系统往往通过端口来判断,它得到的包应该给哪个进程;
    TCP协议


    传输层封装完之后,浏览器会将包交给操作系统的网络层。网络层的协议是IP协议,在IP协议里面会有源IP地址,即浏览器的所在的机器的IP地址和目标IP地址,也就是电商所在的IP地址
    IP地址
    目标IP就是电商地址的门牌号,操作系统知道了目的地的门牌号,就要想着该如何找到目的地;

    首先先判断,目的地是在本地还是在外地;电商系统一般都在那遥远的地方,就比如你到国外要去海关一样,去外地就要经过网关。操作系统启动以后,就会被DHCP协议配置IP地址,以及默认的网关IP地址192.168.1.1;

    如果是本地通信就是靠吼——ARP协议,操作系统大吼一声,谁是192.168.1.1啊?网关会回答它,我就是。这个本地地址就是MAC地址,吼靠的就是ARP协议;

    IP包

    于是操作系统将IP包交给了下一层,也就是MAC层。网卡再将包发出去,包里面包含MAC地址,因此可以到达网关。网关收到包以后,会根据自己的知识,判断下一步该怎么走。网关往往是一个路由器,到了某个IP地址应该怎么走,这个叫作路由表

    路由器就像唐僧西天取经路过的一个个国家之间的城关,每个城关都连接着两个国家,每一个国家都相当于一个局域网,每个国家的内部都可以使用MAC地址进行通信;

    一旦跨越城关,就需要拿出IP头来,里面记录着IP源地址(东土大唐),欲前往西天拜佛取经(目的IP地址),路过宝地,借宿一晚,请问接下来该如何走?
    在这里插入图片描述
    城关与城关之间的沟通协议叫做路由协议,常用的由OSPF和BGP

    城关与城关之间是一个国家,网络包知道了要去哪个城关的时候,还是要使用国家内部的MAC地址,通过下一个城关的MAC地址,找到下一个城关,然后在问下一步该怎么走,一直走到最后一个城关。最后一个城关知道这个网络包要去的地方。于是,对着这个国家吼一声,谁是目标IP啊?目标服务器就会回复一个MAC地址。网络包过关后,通过这个MAC地址就能找到目标服务器;


    目标服务器发现MAC地址对上了以后,取下MAC头来,发送给操作系统的网络层,发现IP地址对上了,在取下IP头。IP头里会写上一层封装的TCP协议,然后交给传输层,即TCP层

    在这一层中,对于收到的每个包,都会有一个回复说明收到了。这个回复的包绝非这次单次请求的结果,例如购物是否成功,扣了多少钱等,而仅仅是TCP层的一个说明,即收到之后的回复。当然这个回复,会沿着刚才来的方向走回去,报个平安,防止在传输过程中造成的丢包等。

    如果过一段时间还没有收到的话,发的端TCP层会重新发送这个包,还是上面的请求,直到收到平安到达的回复。这个重试绝非你的浏览器重新将下单这个动作重新请求一次。对于浏览器来讲,就发送了一次下单请求,TCP层不断自己闷头重试。除非TCP这一层出了问题,例如连接断了,才轮到浏览器的应用层重新发送下单请求。

    当网络包平安到达TCP层之后,TCP头中有目标端口号,通过这个端口号,可以找到电商网站的进程正在监听这个端口号,假设一个Tomcat,将这个包发给电商网站。

    电商网站的进程得到的是HTTP请求知道要买什么东西,买多少。往往一个电商网站最初接待请求的这个Tomcat只是个接待员,负责统筹处理这个请求,而不是所有的事情都自己做。例如,这个接待员要告诉专门管理订单的进程,登记要买某个商品,买多少,要告诉管理库存的进程,库存要减少多少,要告诉支付的进程,应该付多少钱,等等。

    如何告诉相关的进程呢?往往通过RPC调用,即远程过程调用的方式来实现。远程过程调用就是当告诉管理订单进程的时候,接待员不用关心中间的网络互连问题,会由RPC框架统一处理。RPC框架有很多种,有基于HTTP协议放在HTTP的报文里面的,有直接封装在TCP报文里面的。

    当接待员发现相应的部门都处理完毕,就回复一个HTTPS的包,告知下单成功。这个HTTPS的包,会像来的时候一样,经过千难万险到达你的个人电脑,最终进入浏览器,显示支付成功;

    看到这里相信你对于自己之前学过的计算机网络知识有一个连串的感觉了吧,很多公司的面试题都会问在浏览器中输入一个URL的整个过程? 把这一连串说完,相信你的面试官也会觉得你学的很扎实;
    网络协议

    二、网络分层的真正含义

    计算机网络知识点需要背诵,但是更是要理解透彻;

    2.1 为什么网络要分层?

    因为不同层次之间有不同的沟通方式,叫做协议。就像一家公司也是分“层次”,分为总经理、经理、组长、员工,每个人之间都有不同的沟通方式;

    因为复杂的程序都要分层,想象网络包就是一段Buffer,或者一块内存,是有格式的。同时,想象自己是一个处理网络包的程序,而且这个程序可以跑在电脑上,可以跑在服务器上,可以跑在交换机上,也可以跑在路由器上。你想象自己有很多的网口,从某个口拿进一个网络包来,用自己的程序处理一下,再从另一个网口发送出去;

    当然网络包的格式很复杂,这个程序也很复杂,复杂的程序都要分层,这是程序设计的要求。

    2.2 浏览点击请求过程

    浏览点击请求过程如下所示:
    在这里插入图片描述
    在这里插入图片描述
    假设你发现这个包的MAC地址和你的相符,那说明就是发给你的,于是需要调用process_layer3(buffer):这个时候,Buffer里面往往就没有二层的头了,因为已经在上一个函数的处理过程中拿掉了,或者将开始的偏移量移动了一下。在这个函数里面,摘掉三层的头,看看到底是发送给自己的,还是希望自己转发出去的;

    如果IP地址不是自己的,那就应该转发出去;如果IP地址是自己的,那就是发给自己的。根据IP头里面的标识,拿掉三层的头,进行下一层的处理,到底是调用process_tcp(buffer)呢,还是调用process_udp(buffer)呢?

    假设地址是TCP,就会调用process_tcp(Buffer)。这时候,Buffer里面没有三层的头,就需要查看四层的头,看这是一个发起,还是一个应答,又或者是一个正常的数据包,然后分别由不同的逻辑进行处理。如果是发起或者应答,接下来可能要发送一个回复包;如果是一个正常的数据包,就需要交给上层了。交给谁呢?是不是有**process_http(buffer)**函数呢?

    如果你是一个网络包处理程序,你不需要有process_http(buffer),而是应该交给应用去处理。交给哪个应用呢?在四层的头里面有端口号,不同的应用监听不同的端口号。如果发现浏览器应用在监听这个端口,那你发给浏览器就行了。至于浏览器怎么处理,和你没有关系;

    浏览器是解析HTML,显示出页面来。当你再次点击鼠标,点击动作被浏览器捕获,于是浏览器知道又会发起另一个HTTP请求了,于是使用端口号,将请求发送给你。

    你应该调用send_tcp(buffer)。不用说,Buffer里面就是HTTP请求的内容。这个函数里面加一个TCP的头,记录下源端口号。浏览器会给你目的端口号,一般为80端口;

    然后调用send_layer3(buffer)。Buffer里面已经有了HTTP的头和内容,以及TCP的头。在这个函数里面加一个IP的头,记录下源IP的地址和目标IP的地址;随后调用send_layer2(buffer),**Buffer里面已经有了HTTP的头和内容、TCP的头,以及IP的头。这个函数里面要加一下MAC的头,记录下源MAC地址,得到的就是本机器的MAC地址和目标的MAC地址。**不过,这个还要看当前知道不知道,知道就直接加上;不知道的话,就要通过一定的协议处理过程,找到MAC地址。反正要填一个,不能空着;

    2.3 揭秘层与层之间的关系

    现实生活中,往往是员工说一句,组长补充两句,然后经理补充两句,最后总经理再补充两句。但是在网络世界,应该是总经理说话,经理补充两句,组长补充两句,员工再补充两句。

    TCP在三次握手时,TCP每一个消息都会带着IP层和MAC层。因为,TCP每次发送一个消息,IP层和MAC层的所有机制都要重新运行一次,所以TCP在三次握手时,IP和MAC也运行了好久。

    只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层;如果一个HTTP协议的包跑在网络上,它一定是完整的。无论这个包经过哪些设备,它都是完整的。所谓的二层设备、三层设备只是跑在设备上的程序不同;

    • 二层设备:只把MAC头摘下来,看看到底是丢弃、转发,还是自己留着;
    • 三层设备:把MAC头摘下来之后,再把IP头摘下来,看看到底是丢弃、转发,还是自己留着;

    三、ifconfig 命令行的由来

    ifconfig是linux系统中查询ip地址的一个命令,windows是ipconfig;

    3.1 ip地址

    IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号。
    例如:10.100.122.2就是一个IP地址,地址被分为四个部分,每个部分8个bit,所以IP地址总共是32位;

    IP地址被分成了5类,A-E类
    IP地址
    在网络地址中,A、B、C类主要分为两个部分,前一部分是网络号,后一部分是主机号。大家都是六单元1001号,你是小区A的,我是小区B的;

    ip地址范围

    3.2 无类型域间选路(CIDR)

    无类型域间选路,简称CIDR,将IP地址一分为二,前面是网络号,后面是主机号。10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24,这种地址表示形式,就是CIDR,后面24的意思是,32位中,前24位是网络号,后8位是主机号。

    伴随着CIDR存在的,一个是广播地址,10.100.122.125,如果发送这个地址,所有10.100.122网络内的机器都可以收到,另一个是子网掩码,255.255.255.0

    将子网掩码和IP地址按位计算AND,就可以得到网络号,那么上面的ip地址与子网掩码按位取AND,网络号就是10.100.122.0;(1和任意数值取AND,值不变;0和任意数值取AND,即为0);

    3.3 公有IP地址和私有IP地址

    在这里插入图片描述
    平时我们在办公室、学校、家里的IP地址,一般都是私有IP地址,因为这些地址,允许组织内部的IP地址自己管理、自己分配,因此可以重复。就比如你们学校可能由六单元一号,我们学校可能也有六单元1号。

    但是,一旦离开学校就需要使用公有IP地址,就像上海市南京西路88号,这个是国家同统一分配的。公有IP地址,由相关的组织去分配,如果使用,需要购买。

    192.168.0.x,是最常见的私有IP地址,家里有wifi,对应就有一个ip地址,但是一般家庭中的上网设备不会超过256个,所以/24基本就够用了。

    举例:CIDR中容易犯错的点
    16.158.165.91/22,这个CIDR,求网络中的第一个地址、子网掩码和广播地址
    16.158的部分不会动,它占了前16位。中间的165,变为二进制为‭10100101‬。除了前面的16位,还剩6位。所以,这8位中前6位是网络号,16.158.<101001>,而**<01>.91是机器号**;所以第一个地址是16.158.<101001><00>.1,即16.158.164.1,子网掩码是255.255.<111111><00>.0,即255.255.252.0,广播地址是16.158.<101001><11>.255,即16.158.167.255.

    这五类地址中,还有一类D类是组播地址,使用这一类地址,属于某个组的机器都能够收到,这就有点类似于公司中大家加入了一个邮件组,发送邮件,加入这个组的大家都能收到;

    IP地址的后面有个scope对于eth0这张网卡来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于lo来讲,是host,说明这张网卡仅仅可以供本机相互通信;

    lo又被称为loopback,又称环回接口,往往会被分配到127.0.0.1这个地址,这个地址可以用于本机通信,经过内核处理以后直接返回,不会在任何网络中出现;

    3.4 MAC地址

    在IP地址的上一行是link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff,这个被称为MAC地址,是一个网卡的物理地址,用十六进制,6个byte表示。既然已经知道了MAC地址,是不是意味着直接可以通过MAC地址进行通信啊?

    个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能。 而有门牌号码属性的IP地址,才是有远程定位功能的。

    比如:你要去某某大学某某学院找小明,你在路上问,有些人不知道某某学院,但是可以给你说某某学校在哪里,但是你直接根据 小明的身份证号 问别人知不知道他在哪个学院,那么肯定没人知道;

    MAC地址更像是身份证,是一个唯一的标识。它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识

    MAC地址是有一定的定位功能的,你可以根据ip地址找到某某学校某某学院某号楼某个实验室,当你到了以后,大吼一声,小明 是哪位,那么他听到了 就会回应你;

    MAC地址的通信范围比较小,局限在一个子网里面。例如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的。一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,需要IP地址起作用了

    总结:

    • ip是地址,有定位功能;MAC是身份证,无定位功能;
    • CIDR可以用来判断是不是本地人;
    • IP分为公有地址IP和私有地址IP

    四、DHCP和PXE:ip的由来

    只要是在网络上跑的包可以有下层没上层,但是不可以有上层没下层;当一个数据包有自己的ip地址,有目的地的ip地址,但是包发不出去的原因是因为,MAC层还没有填写。

    Linux的默认逻辑是,如果是一个跨网段的调用,它便不会将包直接发送到网络上,而是企图将包发送到网关。网关要和当前的网络至少一个网卡是同一个网段;

    4.1 动态主机配置协议(DHCP)

    动态主机配置协议(Dynamic Host Configuration Protocol),简称DHCP

    有了这个协议,网络管理员就轻松多了。他只需要配置一段共享的IP地址。每一台新接入的机器都通过DHCP协议,来这个共享的IP地址里申请,然后自动配置好就可以了。等人走了,或者用完了,还回去,这样其他的机器也能用。

    如果是数据中心里面的服务器,IP一旦配置好,基本不会变,这就相当于买房自己装修。DHCP的方式就相当于租房。你不用装修,都是帮你配置好的。你暂时用一下,用完退租就可以了。

    4.2 解析DHCP的工作方式

    当一台机器加入一个新的网络的时候,只知道自己的mac地址,先吼一句,有人吗?这一步就是DHCP Discover

    新来的机器使用IP地址0.0.0.0发送了一个广播包,目的IP地址为255.255.255.255。广播包封装了UDP,UDP封装了BOOTP。其实DHCP是BOOTP的增强版,但是如果你去抓包的话,很可能看到的名称还是BOOTP协议;

    在这个广播包里,新人喊一句:我是新来的(Boot request),我的MAC地址是多少,但是我还没有ip地址,谁能给我一个?
    在这里插入图片描述
    网络管理员在网络配置了DHCP server,就相当于IP管理员,MAC地址是其唯一的身份。只有MAC地址唯一,IP管理员才能知道这是一个新人,需要租给它一个新的IP地址,这个过程就是DHCP Offer.

    DHCP Offer格式如下:
    里面会有给新人分配的地址;
    DHCP Offer
    DHCP Server仍然使用广播地址作为目的地址。如果同时收到多个IP地址,那么会选择最先到达的DHCP Offer,并且会向网络发送一个DHCP Request广播数据包,其中包含客户端的MAC地址、接受的租约中的IP地址,提供租约的DHCP服务器地址等,并且告诉所有的DHCP Offer,它将接受哪一台服务器所提供的IP地址,感谢其他DHCP服务器,并且请求撤销他们提供的ip地址,以便提供给下一个租用者。

    在这里插入图片描述
    由于还没有收到DHCP server的最后确认,客户端依然使用自己的源ip地址0.0.0.0、255.255.255.255为目标地址进行广播。在BOOTP里面,接受某个DHCP Server的分配 ip;

    当DHCP Server接收到客户机的DHCP request之后,会广播返回给客户机的一个DHCP ACK消息包,表明已经接受客户机的选择,并且将这一IP地址合法租用信息和其他的配置信息都放到该广播包中,发送给客户机,欢迎它加入网络大家庭;

    在这里插入图片描述
    租约达成以后,还是要广播一下,让大家都知道呢

    ip地址的收回和续租

    如果需要续租的话,需要提前租期的50%,客户机会在租期过去50%的时候,直接向为其提供ip地址的DHCP Server发送DHCP Request消息包,客户机收到该服务器的DHCP ACK消息包之后,会根据包中提供的新的租期,以及其他的已经更新的TCP/IP参数更新自己的配置,这样,ip的租用更新就已经完成了。

    网络管理员不仅能自动分配IP地址,还能帮你自动安装操作系统;

    4.3 预启动执行环境(PXE)

    普通的笔记本一般不会有这种雪球,已经预装好了操作系统。但是数据中心的管理员,可能一下子拿到了几百台空的机器,一台一台装就累死了。

    管理员们不仅希望可以分配好ip地址,还可以自动安装系统,装好系统之后会自动分配IP地址,直接启动最好了。

    安装操作系统的过程,只能插在BIOS启动之后了。因为没安装系统之前,连启动扇区都没有。因而这个过程叫做预启动执行环境(Pre-boot Execution Environment),简称PXE。

    默认的DHCP Server是需要配置的,无非是我们配置IP的时候所需要的IP地址段、子网掩码、网关地址、租期等。如果想使用PXE,则需要配置next-server,指向PXE服务器的地址,另外要配置初始启动文件filename。

    这样PXE客户端启动之后,发送DHCP请求之后,除了能得到一个IP地址,还可以知道PXE服务器在哪里,也可以知道如何从PXE服务器上下载某个文件,去初始化操作系统。

    解析PXE的工作过程

    首先是启动PXE客户端第一步是通过DHCP协议告诉DHCP Server,我啥都没有,DHCP Server便租给它一个ip地址,同时给他PXE服务器的地址、启动文件pexlinux.0;

    其次,PXE客户端知道要去PXE服务器下载这个文件后,就可以初始化机器。于是便开始下载,下载的时候使用的是TFTP协议。所以PXE服务器上,往往还需要有一个TFTP服务器。PXE客户端向TFTP服务器请求下载这个文件,TFTP服务器说好啊,于是就将这个文件传给它;

    然后,PXE客户端收到这个文件后,就开始执行这个文件。这个文件会指示PXE客户端,向TFTP服务器请求计算机的配置信息pxelinux.cfg。TFTP服务器会给PXE客户端一个配置文件,里面会说内核在哪里、initramfs在哪里。PXE客户端会请求这些文件;

    最后,启动Linux内核,一旦启动了操作系统,啥都好办。

    在这里插入图片描述

    总结


    本文是对通信协议综述的总结,共分为四节去介绍:

    1. 为什么学习网络协议?
      通过一个简简单单的下单过程,中间牵扯到这么多的协议,展开介绍;

    2. 网络协议分层的真正含义
      始终想象自己是一个处理网络包的程序:如何拿到网络包,如何根据规则进行处理,如何发出去;
      始终牢记一个原则:只要是在网络上跑的包,都是完整的。可以有下层没上层,绝对不可能有上层没下层;

    3. ifconfig命令行的背后;
      IP是地址,有定位功能;MAC是身份证,无定位功能;
      CIDR可以用来判断是不是本地人;
      IP分公有的IP和私有的IP。后面的章节中我会谈到“出国门”,就与这个有关。

    4. DHCP和PXE:ip的由来;
      DHCP协议主要是用来给客户租用IP地址,和房产中介很像,要商谈、签约、续租,广播还不能“抢单”;
      DHCP协议能给客户推荐“装修队”PXE,能够安装操作系统,这个在云计算领域大有用处;

    展开全文
  • 关于计算机网络通信协议

    千次阅读 多人点赞 2018-11-30 22:25:07
    open system interconnection :开放式系统互联,ISO发起,其任务是指定国际计算机通信标准,特别是促进兼容系统间的互联。 www:world wide web 万维网 HTML:hyper text transfer protocol 超文本传输协议 CGI:...
  • 网络通信协议解析

    千次阅读 2019-11-19 17:14:48
    阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 ...结合协议来看网络通信流程 一.操作系统基础  操作系统:(Operating ...
  • 网络通信协议分类

    2020-01-20 20:53:42
    协议分类 通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供低层次的通信细节。我们可以直接使用这些类...UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,...
  • 实现计算机系统与网络间的物理连接 数据链路层 2 进行数据打包与解包,形成信息帧 网络层 3 提供数据通过的路由 传输层 4 提供传输顺序信息与响应 会话层 5 建立和中止连接 ...
  • 来说明网络通信中各种协议和设备的作用。让大家对整个网络通信,在架构上有所理解,不对各种协议做深入说明。 本系列文章 网络技术入门(一):网络技术基础知识系统归结 网络技术入门(二):两个主机(客户端和...
  • 网络通信协议

    千次阅读 2017-11-30 15:33:40
    网络通信协议 今天学习了网络通信协议,总结出来的知识点,不足之处请大家多多指教! 网络通信协议:负责在网络上建立通信通道和控制通过通道的信息流的规则 为了进行网络通信,通信双方必须遵守通信...
  • 无线网状网络是由Ad Hoc网络发展而来的一种多点对多点的无线网络,目前无线网状网络的路由协议都从很大程度上参考Ad Hocl~络的路由协议,其中经典型路由协议更是直接将Ad Hoc路由协议应用于无线网状网络环境。...
  • 工业控制网络常用通信协议

    千次阅读 2020-06-17 09:47:32
    工业控制网络常用通信协议 工业控制网络常用通信协议............................................................................................. 1 1. 传统控制网络.........................................
  • 常见的网络协议有哪些?...3.计算机网络通信协议的七层结构分别是什么 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 4.常用的网络协议有哪些 TCP(Transport Control Protocol):传输控制
  • 网络通信协议封装格式:TCP与UDP

    千次阅读 2018-11-14 06:39:43
    UDP一般用于对数据准确性和丢包要求比较低,但速度必须快的场合,如即时通信(QQ聊天),在线视频(RTSP),网络语音电话(VoIP),或者用于服务系统内部之间的数据传输,因为数据可能比较多,内部系统局域网内的丢...
  • 网络通信--协议设计

    千次阅读 2019-10-10 19:54:15
    网络通信--协议设计1 介绍2 编码3 TLV编码3.1 TLV介绍3.2 TLV优缺点3.3 定长不定长4 CRC校验参考 1 介绍 通信协议:两个节点间信息交换的规则语法。 类比的话,国人间语言交流,普通话就是通信协议常见的有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,770
精华内容 106,708
关键字:

常用的网络通信协议