linux网络基础

文章目录

  • 计算机网络背景
    • 网络发展
  • 各种名词
    • 协议
  • OSI协议分层
  • tcp/ip模型
  • 总结OSI和tcp/ip四,五层关系
  • 局域网传输基本流程
    • 跨网络传输基本流程
  • 数据包封装和分用
  • 数据分用
  • 网络的地址
  • 两个命令

计算机网络背景

网络发展

独立模式->网络互联->局域网->广域网

各种名词

1.报文(message)
报文包含了应用层的完整的数据信息。

2.数据段(segment)
数据段是传输层的信息单元。

3.数据报(datagram)
数据报是面向无连接的数据传输。采用数据报方式传输时,被传输的分组称为数据报。如传输层TCP的分组叫做数据段,UDP的叫做数据报。
还有一种说法是数据报是数据包的分组,一个完整的数据包由一个或多个数据报组成。(待确认)

4.数据包(packet)
数据包是网络层传输的数据单元。也称为IP包,包中带有足够寻址信息(IP地址),可独立地从源主机传输到目的主机
还有一种说法是数据报是网络层的传输基本单位,数据包是IP协议中完整的数据单元,由一个或多个数据报组成。(待确认)

5.帧(frame)
帧是数据链路层的传输单元。它将上层传入的数据添加一个头部和尾部,组成了帧,帧根据MAC地址寻址。

6.bit流(bit)
bit是在物理层的介质上直接实现无结构bit流传送的。

协议

协议是计算机之间的约定。计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息. 要想传递各种不同的信号就需要约定好双方的数据格式。

也就是说:两台计算机之间规定好了频率强就是1,频率弱就是0,这就叫协议。

但是不只有约定,这个约定还要很多人都同时遵守,如果只有几个人遵守这个约定就没有意义了。因此这个约定是行业先锋来指定的。
linux网络基础_第1张图片
网络其实也是数据交互,把数据写到硬盘也是数据交互。它们两的差别其实就是网线比数据线要长而已。线变长了也会出现很多问题,计算机网络就是解决这些问题的学科。

协议要以结构体在操作系统中呈现
协议其实也是先描述再组织,其实协议也是用结构体来描写的。

网络和送快递很像。在网上买了一个东西,送到我们手上不只是这件东西,还有快递盒,快递单。多了这些东西就是协议。

OSI协议分层

linux网络基础_第2张图片
linux网络基础_第3张图片
物理层解决硬件问题
链路层解决局域网的问题。
网络层解决跨网络的问题。
传输层解决传输数据的稳定性和效率。

tcp/ip模型

Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.

TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的接口来完成自己的需求.


对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
对于一台路由器, 它实现了从网络层到物理层;
对于一台交换机, 它实现了从数据链路层到物理层;
对于集线器, 它只实现了物理层

总结OSI和tcp/ip四,五层关系

linux网络基础_第4张图片

局域网传输基本流程

linux网络基础_第5张图片
同层的通过协议沟通,上下层通过每一层提供的接口沟通。

一个数据在应用层被封装后传输到自己的传输层,再进行封装传输到网络层,再封装到链路层。然后经过以太网传输到对面计算机的网卡里,然后从下往上的解包刚刚封装的包,最后发给用户。

总结来说就是自上而下的封装,然后发送,在对面计算机自下而上的解包

局域网的通信可以看成是U型通信,先向下再向上


其中有一些概念:
1.封装到最底下之后那个东西叫做数据包。数据包由包头和数据(又叫有效载荷)构成。包头就是上层给数据加的协议。
2.几乎所有的协议都要解决报头和有效载荷的分界问题。因为报头也是数据,解包的时候你要正确的分开什么是报头,什么是有效载荷。
3.几乎所有的协议都要解决的第二个问题:确定分离之后,将自己的有效载荷交给上层的哪个协议。这个过程叫做分用
4.局域网中所有的主机可以直接通讯。在数据链路层,有一个mac地址,又叫网卡硬件地址,或者序列号,全球唯一的。在局域网里面发送数据的时候,所有主机都收到了(这有可能会造成数据碰撞,导致通信失败),但是在最底层解包的时候发现mac地址不是自己的,它就把这个数据包给丢掉了。不会交给上层协议了。

5.局域网通讯原理:局域网互相通信的时候有可能会造成数据碰撞。会造成数据变成垃圾数据。发生数据碰撞之后也要回收数据,可以通过数据分析来检测是否发生碰撞了,如果发生了碰撞就会重新发送。

为了避免碰撞情况的产生,要做碰撞避免。发的时候看一下别人有没有发,会大大减少碰撞的可能性。

广播地址:可以把数据发给很多人,这个时候的mac地址是0xffffffff,这个时候所有主机都认为这个数据是发给自己的。

跨网络传输基本流程

跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

linux网络基础_第6张图片

跨网络传输可以看成W型传输,向下向上向下向上。

主机的概念:在局域网里面参与通信的机器就是主机,路由器也是一种主机。

简单讲一下过程:
数据从局域网1一路下来,封装成数据包。然后进行局域网通信。由于路由器也是其中一个主机,因此路由器收到了这个数据,路由器的链路层先对其解包,分析数据包的mac地址。发现mac地址正确,路由器就向上传输数据给网络层中的ip协议,并装包后继续往令牌环传输,数据包最终到达目标局域网之后再解包并一直向上到用户手里。

在跨网络的期间:mac地址是不断变化的,因为是路由器在链路层解包再封包。其他报头从发送到接收都是一样的。

总结一下:网络传输就是不断地下楼上楼。(封装解包封装解包…)
linux网络基础_第7张图片

数据包封装和分用

  • 不同的协议层对数据包有不同的称谓,在传输层叫做数据段(对于tcp而言,对于udp而言也可以叫数据报)(segment),在网络层叫做数据报 (datagram),在链路层叫做数据帧(frame).

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(包头)(header),称为封装(Encapsulation).

  • 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息

  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理(解包)
    linux网络基础_第8张图片

有一个问题:
在ip层的有效载荷是什么?
linux网络基础_第9张图片
下层不会关心上层的协议是什么,它就是一个数据而已。

数据分用

linux网络基础_第10张图片
解包的时候,由于一层中有多个协议。根据包头来区别发送给哪个协议。

网络的地址

IP协议有两个版本,IPv4和IPv6。现在用的多的是IPv4
IP地址是在IP协议中,用来表示网络中不同主机的地址。
对于IPv4来说,IP地址是一个32位的bit位,4个字节
对于IPv6来说,IP地址是一个128位bit位,16个字节

我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255;
也就是一个点一个字节,8个bit位。

mac地址用来识别数据链路层中相连的节点。
长度位48位。一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)

两个命令

lspci 查看驱动
linux网络基础_第11张图片

ifconfig 查看主机网络信息
linux网络基础_第12张图片

你可能感兴趣的:(Linux,网络,linux,网络协议)