赞
踩
计算机网络分类
Wide Area Network
)Local Area work
)广域网可以覆盖超远距离,局域网一般只能覆盖一栋楼,一个楼层或一个校园.
什么是协议?
模型如下
由下到上:
物理层:将二进制数据转换为光电信号
数据链路层:将数据在物理上进行一段一段的传输
网路层:负责将数据发送到目标地址
传输层:负责建立连接、关闭连接并准备发送数据(保障数据可靠性,如果数据发送不完整会进行重发)
会话层:标记发送顺序(比如要发送5封邮件,是一次发送一封,还是一次发送五封邮件)
表示层:根据网络协议,将数据转换为网络标准格式。将计算机特有的数据格式转换为网络标准传输格式
应用层:软件层面,具体程序
从应用层到物理层传递数据时,每经过一层都会进行包裹,加上首部信息
物理层中,相互直接连接的设备使用地址传输,这个物理地址就是MAC地址
网络通信中,数据发送方式有以下几种分类
数据交换有两种方式:电路交换和分组交换。
电路交换就是让计算机连接到交换机,各个交换机负责数据的中转处理,计算机和目标主机通过交换机会建立起一条通信电路.这条电路在同一时刻只能有一台计算机向另一台计算机收发数据.如果有多台计算机同时连接到这条电路, 就必须等待.一旦等待就会导致效率非常低
分组交换:将计算机发送的数据以一个一个数据包的形式在电路上传输,这样多个计算机就可以并行的在同一条电路上发送数据.提高了传输效率
根据目标地址的数量可以进行一下分类:
地址就像是电话号码,用来辨别计算机是谁
类比手机号分国家区号,国内区号,地址也会有层次的一个划分.在定位地址时提高效率
TCP/IP
从字面意思上是指TCP、IP两种协议,有时也泛指IP进行通信时的协议群,称为网际协议群.Request For Commit
)STD
)在网络上可以直接看到RFC文档的内容.
OSI
模型中的第3层网络层.IP协议
ICMP协议
ARP协议
传输层
传输层中有两个经典协议:TCP和UDP
TCP协议
UDP协议
面向无连接的传输层协议
不关心对方是否收到了数据,也不关心是否丢包
应用层(会话层以上)
TCP/IP协议将OSI模型中的会话层、表示层和应用层的功能都放在了应用程序中实现
TCP/IP的应用框架大多数都属于客户端、服务器端模型
浏览器和服务器之间的交互通过HTTP协议进行,传输数据的主要格式是HTML
HTTP是OSI应用层协议,HTML是传输层协议
第一步:应用层的处理
假如张三给李四发邮件早上好,流程大概如下:
张三在邮件中写下早上好,点击发送。应用程序会先将文字进行编码,一般是利用UTF-8,编码过程就是OSI模型中表示层的功能.
在选择发送方式时是一次发送还是多次发送等类似的功能是OSI模型中会话层决定的.这里是一次发送
应用在发送邮件的那一刻开始建立TCP连接.
数据开始进入传输层
第二步:传输层TCP处理数据
TCP开始处理数据,建立连接、发送数据并关闭连接.
处理数据时,会现在应用层的原始数据上加上一个TCP首部
首部中包含一下信息:
然后将添加了TCP首部和原始数据作为一个数据包传递到网络层
第三步:网络层IP协议处理数据
IP将TCP传过来的数据进行处理,先添加一个IP协议的首部,将TCP首部和原始数据看做一个整体,作为新的原始数据.
IP首部中包含发送端和接收端的IP地址,紧跟IP首部的是用来判断后面数据是TCP还是UDP的信息
上面的数据包生成后,会参看路由控制表来找到具体发送数据的路由器或主机,然后传给这些路由和主机(具体是主机上网络接口的驱动程序,就是NIC的驱动程序,数据链路层).
在这个过程中,如果不知道具体的MAC地址,会用ARP协议根据ip地址查找出物理地址,然后开始传输
第四步:数据链路层的处理
将网络层的IP数据包先添加上以太网首部,首部中包含了发送端和接收端的MAC地址(物理地址)和类型信息,然后通过物理层进行传输
第一步:数据链路层(网络接口)的处理
主机接收到数据包后,会从以太网的包首部中找到MAC地址信息,来确认是不是发给自己的,不是就丢弃
如果是发送给自己的包,会在以太网包首部中的协议类型确定数据类型,如果是IP包会将数据包传递给IP协议处理, 如果是其他的包,像ARP,就会传递给ARP去处理
如果协议类型中有无法识别的数据类型,就会丢弃数据
第二步:网络层IP处理
网络层接受到下层传来的数据包时,也会进行类似的操作
先从IP包首部中确定IP地址是不是给自己的,然后在从协议类型中判断数据类型应该传递给上层的哪一个协议,如果是TCP就传递给TCP,如果是UDP就传递给UDP处理。
如果有路由器连接,向上一层传递数据包需要先查看路由控制表,再转发给对应的路由或者主机
第三步:传输层TCP/UDP处理
接收到数据包后,TCP或UDP在进行处理时,会先计算校验和,判断数据是否完整,是否被破坏.然后检查包首部中的序号,看是不是给自己的数据包,然后会根据端口号确认具体是哪一个应用程序
接收完毕后,会发送一个“确认收到”给发送端。如果发送方没有收到这个回复,会认为接收方没有接受到数据,发送方会反复发送数据,直到收到回复.
第四步:应用层处理
应用层的具体程序收到数据后,会解析数据,并进行执行响应的操作.
上面的例子中张三给李四发了早上好,这里的程序解析后会得到李四的邮箱地址,然后将早上好保存到邮箱客户端中,如果地址不对,会给张三的邮箱返回一个地址无效.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。