精华内容
下载资源
问答
  • 网络游戏-用于通过隧道交换协议数据单元网络单元.zip
  • 计算机网络协议——通信协议综述

    万次阅读 多人点赞 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,能够安装操作系统,这个在云计算领域大有用处;

    展开全文
  • 网络游戏-构建Cache一致性协议的方法、众核处理器及网络接口单元.zip
  • 网络游戏-通过网络协议在X射线检测器和运算单元之间传送数据.zip
  • 摘 要:采用基于CAN总线的匹配标定协议,对汽车控制器局域网络中的电子控制单元进行匹配标定。分析了CCP协议用于标定的工作机理,讨论了利用CANape进行基于CCP标定的实现方法,阐述了如何生成CANape与控制器底层程序的...
  • 协议数据单元

    千次阅读 2009-02-01 11:27:00
    网络的对等实体传送的信息单元,包括了控制信息,地址信息,或者数据。 在协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。 在OSI模型系统里,PDU和最底下四层相关。物理层(一层...

    电信领域,术语协议数据单元PDUProtocol Data Unit)有以下几层意义。

    1. 网络的对等实体传送的信息单元,包括了控制信息,地址信息,或者数据
    2. 协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息用户信息。

    OSI模型系统里,PDU和最底下四层相关。

    1. 物理层(一层)PDU指数据流Bit Stream)。
    2. 数据链路层(二层)PDU指数据帧Frame)。
    3. 网络层(三层)PDU指数据包Packet)。
    4. 传输层(四层)PDU指数据段Segment)。

    第五层以上为 data。在特定的上下文情况下,一个特定层的PDU有时可以代表这个层。

    [编辑] 参考

    这篇文章主要参考了美国联邦标准1037C(Federal Standard 1037C),是美国政府部门开放内容。

    展开全文
  • 网络体系结构和网络协议

    千次阅读 2018-05-02 22:32:26
    网络体系结构和网络协议是计算机网络技术中两个最基本的概念。今天我们将从网络层次,服务和协议的基本概念出发,理解一下网络中基本的概念。 一. 网络体系结构的基本概念 1. 什么是网络协议 在生活中,我们多于...

    网络体系结构和网络协议是计算机网络技术中两个最基本的概念。今天我们将从网络层次,服务和协议的基本概念出发,理解一下网络中基本的概念。

    一. 网络体系结构的基本概念

    1. 什么是网络协议

    在生活中,我们多于通信协议并不陌生,一种语言本身就是一种协议。在我们寄信或者请假时,假条内容的格式就是一种协议。这样的例子很多。在计算机中,计算机网络由多台主机组成,主机之间需要不断的交换数据。要做到有条不紊的交换数据,就需要一定的或者实现约定好的通信规则。

    为网络数据交换制定的通信规则,我们称为网络协议(protocol)。

    2. 层次结构

    层次(Layer)结构是处理计算机网络问题的最基本的方法,对于一些复杂的问题,我们经常采用“化整为零,分而治之”的思想,将一个复杂的问题分解为若个小问题去解决。

    3. 接口

    (1)同一主机的相邻层之间存在着明确的接口,相邻层之间通过接口来传递信息。

    (2)低层通过接口向高层提供服务。只要接口不变,低层协议不变,实现低层协议的技术变化不会影响整个系统的工作。

    4. 网络体系结构

    (1)网络体系结构是网络层次结构和各层协议之间的集合。

    (2)网络体系结构对计算机网络实现的功能应该精确定义。

    (3)网络体系结构是抽象的,而实现网络协议的技术是具体的。

    二. OSI参考模型

    1. OSI参考模型的基本概念

    OSI(Open System Internetwork) 开放系统互连是1974年国际电报与电话咨询委员会(CCITT,现已更名为国际电信联盟)和国际标准化组织(ISO)共同制定的系统网络体系结构。

    (1)“开放”是指一台联网计算机系统只要遵循OSI模型,就可以通信。

    (2)“OSI参考模型定义了开放系统的层次结构,层次之间的相互关系,以及各层所需的服务。

    2. OSI 参考模型

    OSI包括7层模型,物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。

    OSI参考模型将整个通信功能划分为7个层次,其层次划分的主要原则是:

    (1)网中各主机都具有相同的层次

    (2)不同主机中的同一层具有相同的功能

    (3)同一主机内相邻层通过接口通信

    (4)每层可以使用下层提供的服务,并向上层提供服务

    (5)不同主机之间的同等层之间的通信通过协议

    三. TCP/IP参考模型

    目前TCP/IP已经称为公认的Internet工业标准与事实上的网络协议标准

    1. TCP/IP参考模型的层次

    TCP/IP模型有五层,包括物理层,数据链路层,网络层,传输层和应用层,其中物理层可以归为硬件技术,数据链路层,网络层和传输层可以归为系统层,而应用层可以归为用户层。

    注:在应用进程A向进程B发送数据时,需要在A主机自上向下每经过一层,在数据外添加该层的报头信息,直至物理层(物理层不添加报头),物理层再一个比特位的传输数据,到主机B,主机B自下向上解包和分用,直至应用层,由应用层将数据传给进程B,完成数据传输。

    2. TCP/IP各层的功能

    网络层

     TCP/IP的网络层使用的是IP协议,IP协议是一种不可靠,无连接的数据报传输协议,它提供一种”尽力而为(best -effort)“的服务。网络层数据单元是IP 分组。

    (1)处理来自传输层的数据发送请求,在接收到报文发送请求后,将传输层报文封装为IP分组,并启动路由算法,选择合适的发送路径。

    (2)处理接收的分组,检查IP地址,如果IP地址正确,则除去分组头,将数据移交传输层。

    (3)处理网络的路由选择,流量控制和拥塞控制

    传输层

    传输层是负责在会话进程之间建和维护端——端连接的,实现网络环境中分布式通信。

    (1)传输层有两种协议:TCP(transport Control Protocol )传输控制协议,UDP(User Datagram Protocol )用户数据报协议。

    (2)TCP是一种可靠的,面向连接,面向字节流的传输协议。

    (3)UDP是一种不可靠,无连接的传输层协议。

    应用层

    应用层属于用户级级别,包括各种标准的网络应用协议:

    (1)远程登录协议(TELNET)

    (2)文件传输协议(File Transport Protocol ,FTP)

    (3)域名服务(DNS)协议

    (4)超文本传输协议(Hyper Text Transfer Protocol,HTTP)。

    3.  TCP/IP的特点

    (1)开放的协议标准

    (2)独立于特定的计算机硬件与操作系统

    (3)独立于特定的网络硬件,适合各种网络。

    (4)统一的IP地址分配方案,所有网络设备在网络中都有唯一的IP地址。

    (5)标准化的应用层协议。

    四.  TCP/IP参考模型和OSI模型的比较

    1. OSI模型的问题

    (1)OSI模型的会话层和表示层很少应用,资源浪费。

    (2)参考模型结构复杂,实现比较困难。

    (3)寻址,流量差错控制在模型中反复出现,系统运行效率低。

    (4)结构复杂,运行效率低,实现周期长,缺乏市场与商业推动力。

    2.  TCP/IP模型的优缺点

    (1) TCP/IP模型在服务,接口和协议上区别不是很清楚。

    (2)简单,实用,商业推动力强。

    五. 网络中数据传输

     

     

     

     

     

     

     

    展开全文
  • 计算机网络协议总结

    万次阅读 多人点赞 2019-05-12 16:35:29
    计算机网络协议全面总结 一、OSI七层协议 物理层: 很久很久以前,那时候还没有现在的外星人超级电脑,或者华为的P30。比较调皮的小明想要把自己机器上写好的一些个人游戏心得(如何玩好王者农药)发给小红(校花)...

    计算机网络协议全面总结

    一、OSI七层协议

    物理层:
    很久很久以前,那时候还没有现在的外星人超级电脑,或者华为的P30。比较调皮的小明想要把自己机器上写好的一些个人游戏心得(如何玩好王者农药)发给小红(校花),希望博得芳心。小明个人比较勤,游戏总结心得总结的比较详细(大概有100M)。但是到底怎么才能从自己的机器上传给小红的机器呢,进过一番打听,他发现远在太平洋另一端的科学家已经发明了一种技术 物理层,专门用来解决小明这种单身狗问题。该层主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。
    他很兴奋,通过一个月的努力终于搭建起了这个物理层。

    数据链路层:
    然而上天却好像和小明开了一个玩笑,楼下的小润发超市的网线、光纤最近卖光了,但是这个物理层传输数据只能通过网线传输。到底怎么办!!。
    此时,他体内的雄性激素促使着他的大脑以光速运转。终于他饿了,无奈得走去学校饭堂三楼吃麻辣烫。此时听到隔壁坐着的那位王叔叔(老王)说,科学家已经发明了一种技术可以通过无线电来传输。What?这不是完美解决了自己的困扰吗。小明连忙对隔壁老王说谢谢,老王留下了幸福的泪水!!
    右通过一番努力查资料,小明发现:这种技术可以通过电线我能发数据流,也可以通过其它介质来传输。然后还要保证了传输过去的比特流是正确的,有纠错功能。定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。
    小明把层技术称为:数据链路层

    网络层:
    由于小明家离小红家比较远,无线电信号无法传输到哪里,但是这完全难不到小明。他通过在离小红家的路上搭建了多个节点(路由器,交换机),用于信号的传输。但是由于他有时候被雄性激素冲昏了头脑,搭建的信号节点有点乱,而且很多。那他又想用最短的路径来传输怎么办呢?在小明沮丧走回家的时候已深夜,他看见今天看到的那位王叔叔匆匆的从自己家走出来,他连忙拉住王叔叔,向他诉说自己的烦恼,希望王叔叔能给自己一些帮助。当小明说完后,王叔叔从紧张变为和蔼,和小明说:其实已经有人发明了网络层。即路由器,交换机那些具有寻址功能的设备所实现的功能。这一层定义的是IP地址,通过IP地址寻址。所以产生了IP协议。该层能选择最佳路径,这就是路由要做的事。

    传输层
    为了趁热打铁,小明通宵查资料来学习相关信息,并且简单搭建好网络层,开始传输数据,趁着传输过程好好睡一觉。当他起来的时候,噩梦才刚刚开始,因为他传输的数据太大(100M)只传输了一部分,而且断断续续的,有一部分数据根本传不出去。那怎么办?
    “加一层传输层!!!”:王叔叔在楼下大声喊着,“资料在你妈妈的床头柜”,王叔叔继续说。小明连忙找到资料,上面写着:“
    发正确的发比特流数据到另一台计算机了,但是当我发大量数据时候,可能需要好长时间,例如一个视频格式的,网络会中断好多次(事实上,即使有了物理层和数据链路层,网络还是经常中断,只是中断的时间是毫秒级别的)。
    那么,我还须要保证传输大量文件时的准确性。于是,我要对发出去的数据进行封装。就像发快递一样,一个个地发。
    例如TCP,是用于发大量数据的,我发了1万个包出去,另一台电脑就要告诉我是否接受到了1万个包,如果缺了3个包,就告诉我是第1001,234,8888个包丢了,那我再发一次。这样,就能保证对方把这个视频完整接收了。
    例如UDP,是用于发送少量数据的。我发20个包出去,一般不会丢包,所以,我不管你收到多少个。在多人互动游戏,也经常用UDP协议,因为一般都是简单的信息,而且有广播的需求。如果用TCP,效率就很低,因为它会不停地告诉主机我收到了20个包,或者我收到了18个包,再发我两个!如果同时有1万台计算机都这样做,那么用TCP反而会降低效率,还不如用UDP,主机发出去就算了,丢几个包你就卡一下,算了,下次再发包你再更新。
    TCP协议是会绑定IP和端口的协议,下面会介绍IP协议。


    通过如此这般的操作,他!小明同学终于把自己100M的游戏心得发送给了小红

    会话层(解除与建立与别的接口的联系)
    然而,小红根本不玩游戏。得知这个消息后,小明楞逼了。但是他没有放弃,而是把自己猜到小红喜欢的信息都发给他,但是小明每发一次,难道我每次都要调用TCP去打包,然后调用IP协议去找路由,这一来一回就是一天,那怎么办呢?
    他又翻了翻王叔叔的笔记本资料,写着:会话层可以帮助我们建立和管理应用程序之间的通信,封装了调用TCP去打包,然后调用IP协议去找路由等操作
    如此一来,他只需要十几二十分钟就能够成功搭建好传输数据的机器。

    表示层(数据格式化,代码转换,数据加密)
    有一次,小明传了一份数据,是关于如何选购化妆品的文章,小红对此非常感兴趣,但是当小红想用自己的window开该文件时发现根本无法打开,后来小红在下课的时候和小明说自己无法打开这个文件,小明想自己用Linux系统明明完整地发送给了小红啊,那就奇怪了,但是出于耍帅,小明只是轻轻地说“我放学后再发你一份!”。
    这时虽然小明不知道是出了什么问题,但是他坚信老王叔叔的资料笔记会有答案的。果然!上清清楚楚的写着:“现在我能保证应用程序自动收发包和寻址了。但是我要用Linux给window发包,两个系统语法不一致,就像安装包一样,exe是不能在linux下用的,shell在window下也是不能直接运行的。于是需要表示层(presentation),帮我们解决不同系统之间的通信语法问题。
    小明立即用了一个通宵手动搭好了表示层,传输了一份完美的文件给小红

    应用层(文件传输,电子邮件,文件服务,虚拟终端)

    官方OSI说明图:
    在这里插入图片描述

    TCP/IP协议

    TCP/IP协议是由七层模型简化成四层而来。(TPC/IP协议其实泛指了四层模型中的全部协议,区别开TCP协议,IP协议)
    七层有底向上分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
    简化后的四层分别是:主机到网络层(比特)、网络层(数据帧)、传输层(数据包)、应用层(数据段)。
    每一层对于上一层来讲是透明的,上层只需要使用下层提供的接口,并不关心下层是如何实现的。

    与OSI七层协议的对比:
    在这里插入图片描述

    传输层:

    网络层是主机与主机之间的通讯,而传输层则是进程之间的通讯。

    • 为何要有传输层?
      应为进程是资源分配的基本单位,计算机之间的信息传输也只是一台计算机的进程传输到另外一台计算机的进程中
    • 一台计算机如何找到另外一台计算机呢,那就是通过IP协议来完成的(复用,多个进程都可以把信息通过传输层到IP层,再传输到另外一台计算机中)。
    • 那如何找到另外一台计算机的进程(pid)呢,那就是用端口(分用,到达另外一台计算机后还要通过端口号找到对应进程)

    传输层主要有两种协议:UDP和TCP

    一、UDP协议

    特点:
    • 无连接,传输数据时不需要建立连接,减小开销
    • 尽最大努力交付,不确保可靠交付
    • 面向报文
    • 没有拥塞控制、确保信息实时性
    • 支持一对一,一对多,多对一,多对多
    • 首部开销小,只有8个字节
    UDP的首部格式(UDP头):
    • 源端口,发送方的端口
    • 目标端口,接收方的端口
    • 长度,首部长度 + 用户数据包的长度(可以没有数据包,所用最小值为8)
    • 检验和,检查UDP用户数据传输中是否与错,有错就丢弃(检查首部长度 + 用户数据包)

    在这里插入图片描述

    二、TCP协议
    A、特点:
    • 面向连接的协议。数据传输之前都要建立连接(三次挥手),数据传输结束都要释放连接(四次挥手)
    • 一条TCP连接只能有两个端点,端点是socket(结构 IP地址:端口号),并非主机或进程。
    • 可靠交付
    • 全双工通信(一端既可以做发送方也可以做接收方)
    • 面向字节流
    B、为何TCP是可靠的呢?

    其实TCP是依赖停止 等待协议连续ARQ 协议+滑动窗口协议才达到可靠的目的

    a、等待协议
    • 特点:资源利用率非常低
    • 工作原理
      客户发送一次数据到服务端,必须等到服务端响应后才发第二次数据,中间的等待时间RTT占了大部分时间,中间如果出现差错(超时或确认丢失)都需要从新传输。
    b、连续ARQ协议
    • 连续ARQ协议工作原理
      维持一个发送窗口(记录了当前可以发送的数据包数量n),在窗口内的数据都可以连续发送出去,服务器只在接收完一个发送窗口的数据后才回响应(累计确认),发送端接收到响应就把发送窗口移动n位,开始新一轮数据发送。

    以上只是简单了解TCP协议的发送流程,如果要清楚发送细节,必须知道TCP报文首部

    TCP报文段的首部格式

    虽然说TCP是面向字节流的,但是TCP传输的数据单元却是报文段,报文段由首部和数据两部分组成,如图

    在这里插入图片描述

    一、源端口和目标端口(各占两字节)
    二、序号(占4字节):TCP连接传输的数据每一个字节都有一个序号,而一个报文段可能会有多个字节的数据,这个序号指的是TCP报文段中起始的序号,下一个报文段的序号则是该序号加上报文数据长度(三次握手和四次挥手时说的SYN或ACK会消耗一个序号就是指该序号)
    三、确认号(占4字节):因为一次数据传输会分成多个报文段,接收方接收完一次报文段后如果要发送确认(有可能不用确认,因为是接收完发送窗口的报文段才确认的),则会携带一个确认号,表示接收方想要接收的下一个报文的序号
    四、数据偏移(占4字位):数据部分的起始位置离报文段起始位置的距离,就是报文首部的长度,单位是4字节,所以4位能表示最大值是十进制的15,就是15 x 4字节 = 60字节,TCP报文首部最大长度为60字节
    五、保留(占6位):未被使用,全置为0
    六、紧急URG:当URG=1时紧急数据才有效。注意,这里URG并不是紧急数据,只是一个标志,标志着紧急数据是否有效
    七、确认ACK:当ACK=1时确认号才有效,当建立连接后全部传输的报文都要把ACK设置为1
    八、推送PSH:接收方机器会有一个接收,当接收缓存慢了才回把接收到的数据交付到接收应用进程中,而如果发送端把报文的PSH设为1,接收方接收到该报文会立即交付到应用的进程中
    九、复位RST:两个作用,1、当RST=1时,表示TCP连接中出现严重差错,必须释放连接,然后重新建立运输连接。2、当RST=1时,拒绝一个非法的报文段或拒绝打开一个连接。
    十、同步SYN:用于同步序号(告诉另外一方,他们之间从该序号开始传输报文段),当SYN=1,ACK=0表示这时一个连接请求报文。
    十一、终止FIN:用于释放一个连接。当FIN=1时,表明此报文的发送方的数据已经发送完毕,并要求释放运输连接。
    十二、窗口(占2字节),是一个接收窗口,接收方允许发送方发送的数据量
    十三、检验和(占2字节):检验接收过来的报文段(报文首部和用户数据)是否有误
    十四、紧急指针(占2字节):当URG=1时才有效,指出紧急数据未尾位置(开始位置是整个报文段中用户数据的开头)
    十五、选项,长度可变,最长40字节

    那到底TCP是如何实现可靠传输的呢?

    TCP可靠传输的实现

    一、通过滑动窗口来发送数据

    在这里插入图片描述

    • 发送窗口有两部分组成,已发送的报文段 和 能够发送但未发送的报文段(等待已发送报文段全部接收完发回来的确认就可以发送了)
    • 当收到确认后发送窗口会向右移动到7位置,作为窗口的起始位置。
    • 发送窗口,发送窗口有可能会收缩(因为接收窗口有可能因为接收缓存不够而变小)
    二、超时重传时间的选择

    采用一个根据RTT动态计算的时间,并不是直接采用一个固定的时间
    RTT:发送一个报文段到收到对应的ACK所花费的时间
    RTO:超时重传时间
    RTTs是一个加权平均RTT时间
    RTTd是RTTs偏差的加权平均
    RTO = RTTs + 4 * RTTd
    如果发生了重传 ,这次的RTT会让RTTs会变大,此时是不会用该RTT来计算RTTs的

    三、确认SACK

    是一个TCP报文首部的选项。
    当数据传输过程中,接收方可能会未按顺收到部分报文段,此时序号告诉发送方从新传输这些报文段,SACK选项就是用于告诉发送方需要传输那些报文段的

    TCP传输连接管理

    连接的三个阶段:建立连接、数据传输、连接释放
    在建立连接的过程中要解决三个问题:
    1、使每一方都知道对方的存在
    2、协商一些参数
    3、能够运输实体资源

    主动建立连接的一端叫客户端,被动等待连接建立的一方叫服务器

    连接建立(三次握手)

    如图:
    在这里插入图片描述
    每次发送一个seq时,都会消耗一个序号,所以会发现在确认时,ack总等于另一端请求的seq+1

    • 为何需要第三次握手?
      假设没有第三次握手(即A再次确认)
      在很久很久以前,A发了一个连接请求给B,但是网络滞留的原因,请求没有到达B,所以B也没有确认返回给A,所以A右发送了一个连接请求给B,此时B收到了连接请求并返回了一个确认给A,此时连端开始愉快的数据传输之旅。当传输结束时,分别断开连接,各自干各自的活儿。但是过了一段时间,之间滞留在网络中的A发出的连接请求到达了B中,B以为A又要传输数据,便右回了一个确认给A,但是A并不需要输出传输,也没有理会这个确认,而B却在傻傻等待A传输数据,这个就会浪费B的资源。
      但是如果有第三次A的确认,A这个滞留的连接传给B,B返回一个确认,但是A不想传输数据了,便没有回一个确认给B(第三次握手),B没有收到该确认也不会等待A传输数据。
    连接释放(四次挥手)

    如图:
    在这里插入图片描述
    第一次挥手:客户端发送连接,FIN=1标志着A已经完成了数据的发送。
    第二次挥手:B回了一个确认,此时A与B的发送连接就断开了。
    第三次挥手:因为TCP连接是全双工通信的,B还保留着一个对A大发送连接,如果等到B也不需要发送数据给A时,B会发送一个连接给A,seq等于一个大于或等于v的值(因为A与B断开发送连接到B与A断开发送连接期间有可能B向A发送了数据,就是消耗序号)。
    第四次挥手:当A收到B的连接时,要回一个响应给B,但是此时会有一个2MSL长的等待时间,时间一过,就真正的断开与B的全部连接了。

    • 为什么需要2MSL的等待时间?
      MSL:最长报文寿命
      当A发送确认给A后,如果此时出现了一些状况(连接被丢弃等),确认无法到达B中,B会重新发送一个连接给A,但是A就停止了,B就一直等待(其实有一个保活时间)。
      如果有了这个等待时间,就算A的ACK确认丢失了,B也会再从新发送一个连接给A,A接收到该连接后,会从新计算等待时间。A会再确认一次

    应用层

    HTTP协议

    特点:
    • 支持客户端 / 服务器模式
    • 简单快速
    • 灵活
    • 无连接,在完成一次请求获得响应后就会断开
    • 无状态,没有记忆的,请求完一次后,就结束了,后面如果要再获得数据必须从新请求
    请求报文的结构

    在这里插入图片描述

    请求头部:用于设置请求的的一些参数如:ContentType
    请求空行:就算请求数据为空,都要有空行,表示请求首部的结束

    从浏览器地址栏键入URL,回车后会尽力的流程:

    • DNS解析
    • TCP连接
    • 发送HTTP请求
    • 服务器处理请求,并返回HTTP报文
    • 浏览器解析渲染页面
    • 连接结束

    GET请求与POST请求的区别

    • HTTP报文层面:GET请求信息放在URL中,POST放在报文体中
    • 数据库层面:GET符合幂等性和安全性,POST不符合
    • 其他层面:GET可以被缓存、储存,而POST不行

    Cookie和Session的区别

    • 为什么会有这两种技术?
      在使用一些需要登录的网站时,每次访问,都会需要验证个人信息,即登录。这样做比较繁琐,能否将个人的账号和密码存起来,访问的时候直接用存取来的个人信息进行验证呢?解决这个问题的就是Cookie和Session
    • Cookie:通过客户端(浏览器)来缓存个人信息。当用户第一次登录时,服务器会将个人信息放在了响应中, 浏览器接收到响应时候会将个人信息以Cookie的形式访问浏览器中保存起来,在下一次访问服务器的时候会带上该Cookie,Cookie中有个人信息,服务器能解析出来,所以不同再次登录验证了。(不够安全,对服务器的开销小)在这里插入图片描述
    • Session通过服务端来缓存信息,根据请求中是否包含Session id的字段,如果不存在则创建一个,并返回给浏览器缓存起来。如果存在则通过该Session id在服务器存储中获得对应的Session信息,直接验证。(安全,服务器的开销变大)
      在这里插入图片描述

    HTTP与HTTPS的区别:

    1、HTTPS需要到CA申请证书,HTTP不需要
    2、HTTPS密文传输、HTTP明文传输
    3、连接方式不同,HTTPS默认使用443端口,HTTP使用80端口
    4、HTTPS = HTTP + 加密+认证+完整性保护,较HTTP安全

    其实也不一定就安全,原因是用户不会再访问时候加上http:// 或 https://, 浏览器就默认会加上http://,然后通过转发的方式转成https:// 这个过程http就有可能会被劫持了。
    此时会用到一个技术 HSTS(HTTP Strict Transort Security)

    展开全文
  • 网络协议的层次结构: 详细介绍了OSI七层网络模型每一层的相关协议以及相应的设备 以及与TCP/IP四层网络模型的层次对应关系 1. OSI七层模型:OSI(Open System Interconnect),即开放式系统互联 第一层:物理层 ...
  • 视频网络协议

    千次阅读 2016-04-20 22:02:48
    视频网络中的协议有很多,一般开发中经常用Http渐进下载协议,RTSP/RTP/RTCP协议族,RTMP等流媒体协议,前两者是共有协议,并有专门机构来维护,或者是Adobe的私有协议,并未完全公开,接下来主要说一下前两者协议。...
  • 一 OSI与TCP/IP各层的结构与功能,都有哪些协议 二 TCP三次握手和四次挥手(面试常客) 三 TCP、UDP协议的区别 四 TCP协议如何保证可靠传输 五 在浏览器中输入url地址 ->> 显示主页的过程(面试常客) 六 ...
  • 网络协议详解

    千次阅读 2017-05-02 16:18:52
    网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行...
  • 网络协议栈基本知识

    千次阅读 2020-07-24 13:37:06
    个人觉得原作者把网络协议栈讲解的很好(生动,易理解),所以在这里记录并分享。 1、网络协议分层 按照分层的思想把网络协议栈进行分层主要有以下好处: 1.促进标准化工作,允许各个供应商进行开发 2.各层间...
  • 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从...
  • 网络协议学习笔记

    万次阅读 2016-10-26 22:40:59
    网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 网络协议主要由三个要素组成:语义、语法及时序;语义表示要做什么,语法表示要怎么做,时序表示做的顺序。 网络协议是网络上所有设备(网络...
  • 分析IP层 传输层以及应用层协议数据单元
  • 网络协议大全

    千次阅读 2012-07-24 09:14:16
    在网络的各层中存在着许多协议...下面就对网络协议规范作个概述。  ARP(Address Resolution Protocol)地址解析协议  它是用于映射计算机的物理地址和临时指定的网络地址。启动时它选择一 个协议(网络层)地址,
  • 软考网络工程师考试网络协议

    千次阅读 多人点赞 2019-05-05 15:59:40
    网络协议 网络工程师考试协议 SAP-service access point /服务访问点。N+1实体从N服务访问点SAP获得N服务。 CEP-connection end point /连接端点。N连接的两端叫做N连接端点。 SNA-系统网络体系结构。是...
  • 协议数据单元PDU

    千次阅读 2011-03-09 11:56:00
    术语协议数据单元(PDU,Protocol Data Unit)有以下几层意义。网络的对等实体传送的信息单元,包括了控制信息,地址信息,或者数据。 在协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制...
  • 网络协议篇之SNMP协议(一)——SNMP报文协议

    万次阅读 多人点赞 2017-08-12 19:45:02
    前言:最近工作中遇到大量的网络协议开发,现就其中一些网络协议的基础知识进行整理,文中借鉴了一些大神的整理,后面会贴上链接,如侵删)
  • 网络协议分析总结

    千次阅读 多人点赞 2020-12-06 16:31:59
    ARP地址解析协议用于将计算机的网络IP地址转化为物理MAC地址,ARP协议的基本功能 就是通过目标设备的IP地址。查询目标设备的MAC地址,以保证通信的顺利进行。 在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,...
  • 计算机网络协议汇总

    千次阅读 多人点赞 2015-10-18 16:26:03
    计算机网络OSI七层模型:物理层、数据层、网络层、传输层、会话层、表示层、应用层。...在这一层,协议数据单元为比特(bit)。在物理层的互联设备包括:集线器(Hub)、中继器(Repeater)等。 二、数据层
  • 计算机网络——3.网络协议工作原理

    千次阅读 2016-02-27 21:36:34
    网络协议是网络技术学习的基础和根本,它是为计算机网络中数据交换建立的某种规则、标准以及相关的约定。本文将讲解数据链路层协议ARP、网络层协议IP、传输层协议TCP和UDP、应用层协议HTTP、FTP、POP3等常用协议。
  • 常见网络协议报头格式

    千次阅读 2017-04-23 12:03:27
    网络协议,报头格式
  • 计算机网络词汇解释(一)——网络协议体系

    千次阅读 多人点赞 2021-03-08 16:49:31
    计算机网络词汇解释(一)——网络协议体系 本篇文章试图以:是什么?为什么?怎么样?三个层次来解释词汇,并尽量实现通信的哲学“你传达的复杂信息,到底有没有人愿意听、能够懂、记得住、还给点赞。”由于本人也...
  • 原文链接:网络层次划分及网络协议 1 OSI七层模型、TCP/IP四层模型、TCP/IP五层模型 不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。 ...
  • PDU (协议数据单元

    千次阅读 2018-02-17 12:40:05
    协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是报文(message)。...
  • PDU(协议数据单元

    万次阅读 多人点赞 2018-08-20 20:48:36
    协议数据单元(Protocol Data Unit )物理层的 PDU是数据位(bit),数据链路层的 PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的 PDU是数据段(segment),其他更高层次的PDU是数据(data)。...
  • 计算机网络协议集合

    千次阅读 多人点赞 2018-03-21 09:17:26
    阅读目录 1. 网络层次划分2. OSI七层网络模型3. IP地址4. 子网掩码及网络划分5. ARP/RARP协议6. 路由选择协议7. TCP/IP协议8. UDP协议 9.... 计算机网络学习的核心内容就是网络协议的学习。网络...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,396
精华内容 57,358
关键字:

网络协议单元