计算机网络问题总结
Contents
计算机网络问题总结
HTTP,TCP,IP的用途区别
http负责将什么样的数据送给对方,同时,http接收端负责解释这些数据的真正含义
TCP负责将客户的数据按序送到客户指定的目的地,如果有丢失,则负责重传。
IP协议负责TCP输入的客户目的地,根据一定的策略将数据送到目的地。IP协议无法保证对端一定活着,IP是不够智能的,只能简单的运送,无法解决丢包重传,重新排序,流量控制等复杂的操作。如果没有上层的Tcp协议,应用层的协议就要无时无刻不盯着自己发送的数据包,超时就重传。乱序则排序,把这些功能抽象出来就是TCP的作用。
Socket
socket函数是操作系统内核将“TCP/IP协议栈 + 底层网卡”抽象出来的一个个用户友好的函数,用于操纵本地的“TCP/IP协议栈 + 底层网卡”与远端的服务器/主机完成通信的任务。
数据帧
所谓数据帧(Data frame),就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如IP数据包。
链路层和网络层的关系
数据链路层提供直连两个设备之间的通信功能。与此相比,作为网络层的IP则负责在没有直连的两个网络之间进行通信传输。
好比一个人要去很远的地方旅行,其中要坐汽车,要坐火车,要坐船。同时他做了一个规划表,详细制定了几点到几点应该坐什么交通工具从哪到哪。
在他买了机票,汽车票,船票后,他们都只在特定的区间是有效的。所以就相当于它们都只负责某一个区间的通信运输,而那个详细的规划表就相当于IP,它负责将数据包发送到最终的地址。
如果只有车票没有行程表,没法到达目的地,因为不知道什么时候该换乘,也不知道下一段路坐什么车,而光有行程表没有车票也不行,因为没法乘坐交通工具。(图解TCPIP /117页)
也就是网络层知道该往哪条路走(路由选择)(一到路由器就知道下段路该往哪走),具体在这条链路上怎么走由链路层决定。
(我的理解:链路层以上的层都是说明了数据该走到哪,走到以后怎么解析,而真正说明怎么走的就是链路层协议规定的内容)
包传递过程中哪些不变,哪些变
帧经过交换机时,其源、目标MAC是不会变的,一句话:二层转发不改变帧的MAC地址、IP地址;
帧经过路由器时,进行路由转发,IP地址是不会变的,但MAC地址必定会变。
链路层
主要负责物理层面上的互连的,节点之间的通信传输,例如与一个以太网相连的两个节点之间的通信。将01序列划分为具有意义的数据帧送给对端。
链路层的协议有许多种,但是有三个基本的问题,那就是封装成帧,透明传输,差错控制。
- 封装成帧
数据链路层的主要工作是添加一个帧头部和帧尾部,不同的数据链路层协议可能格式不同,但是基本的格式都试类似的:
这里的数据部分,一般有一个最大程度,我们称为MTU,在MAC里一般是1500个字节,当数据是由可打印的ASC2码组成的文件时,可以使用特殊的帧定字符来标明一个帧的开始和结束。比如使用SOH(Start Of Header)–0x01和EOT(End Of Transmission)–0x04来表示,这样数据链路层就可以识别出帧的开始和结束。
- 透明传输
如果我们提供任何数据输入,数据链路层都可以成功传递,那么我们称之为透明传输,即数据链路层的功能对于网络层和上层是透明的。
- 错误检测
现实的通信链路都不会是理想的,这就是说,传输过程中有可能1变成0,0变成1,这种情况就叫做比特差错。数据链路层提供了循环冗余检验CRC方法来检测比特差错,其主要使用了帧检验序列FCS来检测比特错误。发送数据前先计算帧的数据部分得出FCS添加在数据部分后,接收端收到数据后添加上FCS后计算验证。
需要注意的是数据链路层并没有向网络层提供可靠传输服务,传输差错一类是比特差错,还有一类是帧丢失、帧重复或帧失序。完整的传输错误控制是在TCP中实现的。
物理层怎么传
物理层只需要把数据从物理相连的链路上传就行了,连到哪,就走到哪,只有到了设备,也就是到了可识别协议的设备的时候,才会有选择路径的说法。
最后的地址怎么找到
通过IP地址可以找到目的地在哪一个网络,然后找到这个网络后,就需要通过MAC地址进行广播找到最终的终端。
MAC地址与IP地址
MAC寻址中参考的表叫做地址转发表,IP寻址中参考的表叫做路由控制表。
交换机与路由器
网桥也就是两层交换机,是从数据链路层上延长网络的设备。
路由器也就是三层交换机,是通过网络层转发分组数据的设备。
4-7层交换机 处理传输层以上各层网络传输的设备
包首部
每一个包首部中至少都会包含两部分信息,一个是发送端接受端地址,另一个上层的协议类型。
数据链路的作用
各个设备在数据传输时,链路层和物理层必不可少,众所周知,计算机以二进制0,1来表示信息,然而实际的通信媒介之间处理的却是电压的高低,光的闪灭以及电波的强弱等信号。把这些信号与二进制的0,1进行转换正是物理层的责任。
数据链路层的处理也不是单纯的01序列,链路层把他们集合为一个叫做帧的块,然后再进行传输。
MAC地址
mac地址用于识别数据链路中互联的节点。48位
数据链路有哪些
有以太网,无线通信,PPP(点对点,即1对1连接计算机)的方式。
ATM,POS,FDDI等。
这些链路协议相当于运输工具,就相当于士兵运货物从海南到北京,其中可能要用船,可能的地方只能骑马,有的地方可以开越野车,(就相当于不同的链路协议)
Author: corn1ng
Link: https://corn1ng.github.io/2018/04/05/计算机网络问题总结/
License: 知识共享署名-非商业性使用 4.0 国际许可协议