203-计算机网络

网络

网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、路由器等设备。
网络设备有:交换机、路由器、集线器
传输介质有:双绞线(我们常说的网线)、同轴电缆、光纤(光纤速度最快)

路由器:网络和网络的链接,口比较少
交换机:局域网内,多台主机要链接,口比较多

其实说白了,网络就是一台一台的主机连起来(主机是基本单位)
网络的目的是实现资源共享,信息交互
在这里插入图片描述

什么是互联网?

把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。(网络作为基本单位)
在这里插入图片描述

IP 地址

两台主机进行通讯,要把他们唯一标识起来。通过IP地址。
IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的标识符。IP 地址因其特殊的结构使我们可以在因特网上很方便地进行寻址。

IP 地址有分 IPV4 和 IPV6 两种类别格式,IPV4 是类似”A.B.C.D”的格式,它是 32 位的,用“.”分成四个段,每个段是 8 个位(值为 0-255),用 10 进制表示。(最多可以表示2的32次方个IP地址)
IPV6 地址是 128位,格式类似”XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX”,用“:“分成 8 个段,每个段 16 个位,用 4 个 16 进制数表示

IPV4 地址示例: “192.168.31.1”
IPV6 地址示例:“2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b“

接下来描述的 IP 地址默认都指的是 IPV4 的地址。为了便于寻址,了解目标主机的位置,每个 IP 地址由网络号和主机号两个部分构成。同一个物理网络上所有的主机都使用同一个网络号,只是主机号不同。
IP 地址组成:
在这里插入图片描述
类似于我们的学号,同一个班,前面的数字一样,后面的代表座号就不一样。
IP 地址分类:
在这里插入图片描述
由于每类地址的开头是固定的,因此每类地址都有自己的范围:
A 类:IP 地址范围为 0.0.0.0~127.255.255.255。
B 类:IP 地址范围为 128.0.0.0~191.255.255.255。
C 类:IP 地址范围为 192.0.0.0~223.255.255.255。

使用命令“ifconfig”可以在 linux 查看自己的 ip 地址(Windows上用ipconfig命令),如下图:
在这里插入图片描述

MAC 地址

计算机买回来的时候,MAC地址已经固化到网卡里面了。(物理地址)
也可以唯一确定一台主机
在局域网中,硬件地址又称为物理地址或者 MAC 地址,长度 48 位,是固化在计算机适配器的 ROM 中的地址。因此假定连接在局域网上的一台计算机的适配器坏了而我们更换了一个新的适配器,那么这台计算机的局域网的“地址”也就改变了,虽然这台计算机的地理位置没有发生变化。其次,当我们把一个笔记本从一个城市带到另一个城市时,虽然地理位置改变了,但是电脑在局域网中的“地址”仍然不变。由此可见,局域网上某个主机的“地址”根本不能告诉我们这台主机位于什么地方。在网络上方便的寻找某个主机,还得依靠 ip地址进行。

MAC地址相当于一个平面化的结构,在学校里,我们有名字和学号,都能唯一标识你自己,但是这个学号是有规律的,能表示你是大几,哪个学院,哪个班,方便于管理。但是,只看名字的话,却不了解他,不知道他大几的哪个学院哪个班的,想找到他很困难。这里的学号相当于IP地址,这里的名字相当于MAC地址。
IP地址,比如你在学校打开计算机来上网,处在学校的网络中,回到老家,连的老家的网络,IP地址是变化的。但是MAC地址是不会变化的!
IP地址可以在网络中唯一标识一台主机,相较于 MAC地址 ,比较方便找到,也可以体现在网络中的变化

MAC 地址示例:
在这里插入图片描述
两台相应的设备,我们用MAC地址。

两者之间的转换协议
arp协议,rarp协议,一个从IP到MAC一个从MAC到IP

网络协议

网络协议就是一组网络规则的集合,是我们共同遵守的约定或标准。常见的协议:
◼HTTP:超文本传输协议
◼ FTP: 文件传输协议
◼ TELNET : 是 internet 远程登陆服务的标准协议。
◼ TCP : 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议
◼ UDP :用户数据报协议
◼ IP : Internet Protocol 简称 IP,又译为网际协议或互联网协议
◼ ICMP :因特网控制报文协议
◼ ARP : 地址解析协议,是根据 IP 地址获取 MAC 地址的协议
◼ RARP : 逆地址解析协议

协议其实就是描述某一场景下的标准,在学校要遵守校规,在马路上要遵守交通规则。
在不同场景下遵守相应的约束。
每种协议在特定场景下产生作用。

在需要的时候去遵守相应的协议。

端口:
不在计算机上面,看不见的,通过命令看见(软件层面)
比如说:在班级里,让同学帮忙转交一个东西给另一个同学,就给每个同学编个号,给某班几号同学。
在网络通讯的时候,IP地址虽然可以在网络中确定一台主机,但是把数据送到主机以后,主机上运行着很多进程(QQ,微信,淘宝),那么数据应该给谁呢???所以端口就是给进程编个号,区分出来数据送过来说,给几号。
网络编程实际上就是两个主机上的两个进程的通讯
应该IP代表一个主机,端口代表对应的进程,不能重复编号。(短整型)

网络分层模型

OSI 的 7 层模型与 tcp/ip 协议族体系 4 层结构
在这里插入图片描述
七层模型-------------------- 四层模型

分层的好处:

在这里插入图片描述
容易实现标准化!
类似于大厨的工作每个部分相应的人去做,让大厨只负责炒菜,用。炒菜,用相当于是应用层。底层做好,应用层直接调用就可以。
在这里插入图片描述
每一层用下一层的作为基础,为上一层服务。

数据链路层

负责相邻两个结点间数据的可靠传输
A和B相邻,A和C不相邻,A和D相邻
在这里插入图片描述
数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。
在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法。
该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
◼ MAC 子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的
访问控制;
◼ LLC 子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。
TCP/IP 协议体系结构中,数据链路层的功能描述为实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。这一层主要关注的三个基本问题是:封装成帧,透明传输和差错检测。

网络层

负责不相邻的两个结点之间的数据传输
比如说数据要从E发送到F,要经过AD或者ABC再到F
数据要从E设备中发出去(E里面没有这个数据了),存到A里头,再从A发出去(A里头就没有这个数据了),存到D结点中,再从D发出去(D里头就没有这个数据了),存到F结点中。数据的传递
是一个一个设备传递数据(数据是作为一个单元的,是整体)。不是相连的。
A给B还是D是由路由决定的。
在这里插入图片描述
网络层实现数据包的选路和转发。广域网或者说互联网通常使用众多分级的路由器来连接分散的主机或者局域网,因此,通信的两台主机一般不是直接相连的,而是通过多个中间结点(路由器)连接的。网络层的任务就是选择这些中间结点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。
网络层最核心的协议是 IP 协议(Internet Protocol,因特网协议)。IP 协议根据数据包的目的 IP 地址来决定何如投递它。如果数据包不能直接发送给目标主机,那么 IP 协议就是为它寻找一个合适的吓一跳路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP 协议使用逐跳的方式确定通信路径。
网络层另外一个重要的协议是 ICMP 协议(因特网控制报文协议)。它是 IP 协议的重要补充,主要用于检测网络连接。
IP 协议为上层协议提供无状态、无连接、不可靠的服务。
无状态是指通信双方不同步传输数据的状态信息,因此所有 IP 数据报的发送、传输和接收都是相互独立、没有上下文关系的。这种服务最大的缺点是无法处理乱序和重复的 IP数据报。虽然 IP 数据报头部提供了一个标识字段用以唯一标识一个 IP 数据报,但它是被用来处理 IP 分片和重组的,而不是用来指示接收顺序的。无状态的优点是简单、高效。无须为保持通信状态而分配一些内核资源,也无须再每次通信时携带状态信息。
无连接是指 IP 通信双方都不长久地维持对方的任何信息。这样,上层协议每次发送数据的时候,都必须明确指定对方的 IP 地址。
不可靠是指 IP 协议不能保证 IP 数据报准确地到达接收端,它只是承诺尽最大努力。
IPV4 头部结构如下:
在这里插入图片描述
前面5行是固定的(20字节),加上选项部分最多40字节,从哪个主机去往哪个主机。但是这里没有描述端口号,传给哪个进程,端口号在传输层。

传输层

负责E的一个进程和F的一个进程的通讯
在这里插入图片描述
传输层为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信的方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
传输层协议主要有三个:TCP 协议、UDP 协议和 SCTP 协议
TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务。TCP 协议使用超时重传、确认应答等方式来确保数据包被正确的发送至目的端,因此 TCP 服务是可靠的。使用 TCP 协议通信的双方必须先建立 TCP 连接,并在内核中为该连接维持一些必要的数据结构,比如连接状态,读写缓冲区等。当通信结束时,双方必须关闭连接以释放这些内核数据。TCP 服务是基于流的,基于流的数据没有边界(长度)限制,它源源不断地从通信地一端流入另一端。发送端可以逐个字节地向数据流中写入数据,接收端可以逐个字节地将它们读出。
TCP 协议报头:
在这里插入图片描述
UDP协议用户数据报协议)则与 TCP 协议完全相反,它为应用层提供不可靠、无连接、基于数据报地服务。“不可靠”意味着 UDP 协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则 UDP协议只是简单地通知应用程序发送失败。因此,如果要使 UDP 协议可靠,那么应用程序通常要自己处理数据确认、超时重传等逻辑。UDP 是无连接的,即通信双发不保持一个长久的联系,因此应用程序每次发送数据都要明确指定 接收端的地址。基于数据报的服务,是相对基于流的服务而言的。每次 UDP 数据报都有一个长度,接收端必须以该长度为最小单位将其所有内容一次性读出,否则数据将被截断。
SCTP 协议(流控制传输协议)是一种相对较新的传输层协议,它是为了再因特网上传输电话信号而设计的。这里暂时不讨论 SCTP 协议。

应用层

应用层负责处理应用程序的逻辑
网络应用程序通信流程
如下图,应用程序 A 要将数据”hello” 传给网络上另外一台主机上的应用程序 B, 数据“hello”从应用层发送给传输层后,传输层在数据前面加上 tcp 协议或 udp 协议的报头,将整条报文发给网络层,网络层添加自己的 IP 报头,再将整条数据发送给数据链路层。数据链路层将数据封装成能在网络中独立传输的数据单元,即数据帧。封装好的数据帧通过网络传输到另一台主机,然后再从下层依次拆包,将数据部分送往应用层。应用程序 B 就得到了数据”hello”。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林林林ZEYU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值