计算机网络学习——OSI七层模型与TCP/IP模型

  今天稍微总结一下本学期学到的计算机网络的相关知识,先介绍一下网络的组成。

  • 网络:(Network)有若干个结点(Node)和连接这些结点的链路(Link)组成.
    (网络中的结点可以是计算机、集线器、交换机或路由器).
  • 互联网:由路由器连接起来的覆盖范围更大的网络,因此互联网就是“网络中的网络”.
  • 因特网:世界上最大的互联网络.
    在这里插入图片描述

  因此,我们先初步建立这样的基本概念:网络把许多计算机连接在一起,而互联网把许多许多网络连接在一起。因特网就是世界上最大的互联网为了明确概念,我们把直接连接在计算机上的网络称为物理网络,而互联网是由物理网络集合构成的逻辑网络.还有一点我们必须注意,网络互联并不仅仅是把计算机简单的在物理上连接了起来,因为这样做并不能达到计算机之间能够相互交换信息的目的,所以我们需要去了解信息如何在网络上传递…

- 网络协议

  计算机网络是由多个互联的结点组成。结点之间要做到有条不紊的交换数据,每个结点就必须遵守一些事先预定好的规则。这些规则明确规定了所交换数据的格式和时许,以及在发送或接收数据时索要采取的动作等问题。 这些为进行网络中的数据交换而建立的规则、标准即称为网络协议(Network Protocol).

  在此列举大家所了解的最重要的协议模型

在这里插入图片描述

1. OSI七层模型

  为了使不同体系结构的计算机网络都能够互联,国际标准化组织ISO(International Organization for Standardization,国际标准化组织)提出的一个试图在世界范围内互联成网的标准框架,即著名的开放互联参考模型(Open System Interconnection),简称为OSI ,是一个把网络通信在逻辑上的定义。而我们的数据在网络中传输的过程,实际上就是如下图的封装和解封装的过程,发送方通过各种封装处理,把数据转换成比特流的形式,比特流在信号传输的硬件媒介中传输,接收方再把比特流进行解封装处理。
在这里插入图片描述

(1)物理层

物理层考虑的就是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体(就是两张物理网卡之间通信的电信号的(0和1)的传输方式)。物理层协议的主要任务就是确定与传输媒体的接口有关的一些特性,如下所述

  • 机械特性 :指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等
  • 电器特性 :指明了在接口电缆的各条线上出现的电压的范围
  • 功能特性 :指明某条线上出现的某一电平的电压表示何种意义
  • 过程特性 :指明对于不同功能的各种可能事件的出现顺序

因为物理层是一种抽象的概念,所以传输媒介(网线、线缆等)是物理层的实现手段

(2)数据链路层

数据链路层重要的三个问题就是:将物理层的电信号封装成帧、差错检测、和可靠传输。(交换机就工作在这一层)该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

  • MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制;
  • LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

数据链路层的具体工作是接收来自物理层的位流形式的数据(电平信号)转化为数据帧然后交给上一层网络层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层;并且,还负责处理接收端发回的确认帧的信息,以便提供可靠的数据传输。
所以数据链路层是一个承上启下的衔接层。从网络参考模型的角度看,物理层之上的各层都有改善数据传输质量的责任,数据链路层是相邻物理层最近的一层,也是最重要的一层。
数据链路层自身当然无法解决物理线路和外界环境带来的物理故障,所以数据链路层利用一些机制来从逻辑上提供一个无差错的链路数据传输环境,如帧同步、重传、差错检测、差错控制、流量控制等方案。

(3)网络层

主要功能:基于数据包的逻辑地址进行转发,寻找网络中目的的位置,并在去往目的的多条路径中选择一条最佳的路径。
逻辑地址:就是网络层地址,如TCP/IP协议栈的IP地址,OSI中的NSAP地址。当一个从应用层发起的数据包,一层层封装到网络层时,会接着封装上一个网络层的头部,在网络层的头部中,就包括逻辑地址等信息。
路由的方法:OSI和TCP/IP协议栈封装的网络层头部中有很多内容,其中最主要的有两个:

  • 源地址:发起的这个数据包的那台设备的地址,源IP在传送至目的之前是不会改变的;
  • 目的地址:我要访问的是谁?

(4)传输层

网络层实现了主机到主机的通信,但在实际计算机网络中进行通信的实体是位于通信两端主机中的进程传输层就是为运行在不同主机上的应用进程提供直接通信服务
运输层协议又叫端对端协议,传输层对数据(段)进行分割和重组,并且进行流量控制和根据接收方的接收数据能力确定适当的传输速率。例如以太网无法处理大于1500字节的数据包,传输层将数据分割成数据片段,并对小数据片段进行序列编号。接收方的传输层将根据序列编号对数据进行重组。传输层协议有TCP协议、UDP协议等。

(5)会话层

为两个通信的网络设备之间建立会话、保持会话、断开会话

  • 建立会话:A、B两台网络设备之间要通信,要建立一条会话供他们使用,在建立会话的过程中也会有身份验证,权限鉴定等环节;
  • 保持会话:通信会话建立后,通信双方开始传递数据,当数据传递完成后,OSI会话层不一定会立刻将两者这条通信会话断开,它会根据应用程序和应用层的设置对该会话进行维护,在会话维持期间两者可以随时使用这条会话传输局;
  • 断开会话:当应用程序或应用层规定的超时时间到期后,OSI会话层才会释放这条会话。或者A、B重启、关机、手动执行断开连接的操作时,OSI会话层也会将A、B之间的会话断开。

(6)表示层

表示层功能:电脑从网卡收到一串数据时,这些数据在电脑中都是二进制的格式,没办法直接给人看,表示层就是把这些二进制数据转换成我们能够识别的数据。
基本作用:就是对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。

(7)应用层

用层功能:应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。
我们在使用各种网络应用程序时,都是内置有应用层协议的。比如,IE浏览器,使用的是应用层的HTTP协议;QQ使用的应用层协议是OICQ;Outlook使用收发邮件的SMTP、POP3协议……

2. TCP/IP四层模型

  在OSI模型之前,TCP/IP协议簇就已经在运行,并逐渐演变成TCP/IP网络模型。到了20世纪90年代初期。虽然整套的OSI协议已经制定出来,但这时候因特网已经在全世界覆盖类相当大的范围,因此得到最广泛应用的不是OSI而是TCP/IP。
在这里插入图片描述

  TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

  • TCP/IP协议的工作流程
    在这里插入图片描述
    简单的来说就是一层一层的加报文头,然后一层一层的拆解报文头将数据报文送达目的地。

(1)应用层

我们首先从给数据最上层来看,如何让数据送达目的地。
应用层作为TCP/IP协议的最上层,其实是我们接触最多的,由于在传输层的传输协议大致分成了TCP和UDP,所以在应用层对应的协议也就分成了两部分:

运行在TCP协议上的协议

  • HTTP(Hypertext Transfer Protocol,超文本传输协议),主要用于普通浏览。
  • HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本传输协议),HTTP协议的安全版本。
  • FTP(File Transfer Protocol,文件传输协议),由名知义,用于文件传输。
  • POP3(Post Office Protocol, version 3,邮局协议),收邮件用。
  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用来发送电子邮件。
  • TELNET(Teletype over the Network,网络电传),通过一个终端(terminal)登陆到网络。
  • SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陆用。

运行在UDP协议上的协议

  • BOOTP(Boot Protocol,启动协议),应用于无盘设备。
  • NTP(Network Time Protocol,网络时间协议),用于网络同步。
  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),动态配置IP地址。

(2)传输层

http封装请求数据包以后传给传输层,tcp协议部分开始运作。这里将数据包和TCP报头生成TCP报文,打包成新的数据包

  • TCP报文结构
    在这里插入图片描述

1)源端口号
2)目标端口号
3)序列号:因为在TCP是面向字节流的,他会将报文都分成一个个字节,给每个字节进行序号编写,比如一个报文有900个字节组成,那么就会编成1-900个序号,然后分几部分来进行传输,
比如第一次传,序列号就是1,传了50个字节, 那么第二次传,序列号就为51,所以序列号就是传输的数据的第一个字节相对所有的字节的位置。
4)确认应答:如刚说的例子,第一次传了50个字节给对方,对方也会回应你,其中带有确认应答,就是告诉你下一次要传第51个字节来了,所以这个确认应答就是告诉对方要传第多少个字节了
5)首部长度:就是首部的长度,
6)保留:给以后有需要在用,这个保留的位置放的东西是跟控制位类似的
7)控制位:目前有的控制位为6个

  • URG:紧急,当URG为1时,表名紧急指针字段有效,标识该报文是一个紧急报文,传送到目标主机后,不用排队,应该让该报文尽量往下排,让其早点让应用程序给接受。
  • ACK:确认,当ACK为1时,确认序号才有效。当ACK为0时,确认序号没用
  • PSH:推送,当为1时,当遇到此报文时,会减少数据向上交付,本来想应用进程交付数据是要等到一定的缓存大小才发送的,但是遇到它,就不用在等足够多的数据才向上交付,而是让应用进程早点拿到此报文,这个要和紧急分清楚,紧急是插队,但是提交缓存大小的数据不变,这个推送就要排队,但是遇到他的时候,会减少交付的缓存数据,提前交付。
  • RST:复位,报文遇到很严重的差错时,比如TCP连接出错等,会将RST置为1,然后释放连接,全部重新来过。
  • SYN:同步,在进行连接的时候,也就是三次握手时用得到,下面会具体讲到,配合ACK一起使用
  • FIN:终止,在释放连接时,也就是四次挥手时用的。

8)窗口:指发送报文段一方的接受窗口大小,用来控制对方发送的数据量(从确认号开始,允许对方发送的数据量)。也就是后面需要讲的滑动窗口的窗口大小
9)检验和:检验首部和数据这两部分,和UDP一样,需要拿到伪首部中的数据来帮助检测
10)选项:长度可变,介绍一种选项,最大报文段长度,MSS。 能够告诉对方TCP,我的缓存能接受报文段的数据字段的最大长度是MSS个字节。如果没有使用选项,那么首部固定是20个字节。
11)填充:就是为了让其成为整数个字节

TCP报文头里的每个数据都是有用的,涉及到TCP建立连接的三次握手和四次挥手,详情请点击这里 TCP(三路握手与四次挥手)

(3)网络层

TCP数据包到了这一层,再加上IP报文生成新的IP数据包
网络层主要负责物理地址(mac)和逻辑地址(ip)的转换如下:

  • IP协议(Internet Protocol:网际协议):是TCP/IP协议族中最为核心的协议。它提供不可靠、无连接的服务,也即依赖其他层的协议进行差错控制,IP协议配套使用的还有四个协议。

    • ICMP(Internet Control Message Protocol:网际控制报文协议):主要负责网络层和传输层的数据交换,是为了更有效地转发IP数据报文和提高数据报文交付成功的机会,是介于传输层和网络层之间的协议。

    • IGMP(Internet Group Message Protocol:网际组报文协议):是TCP/IP 协议族中负责IP组播成员管理的协议,用来在IP主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

    • ARP(Address Resolution Protocol:地址解析协议):主要是将IP地址解析成MAC地址的协议。

    • RARP(Reverse Address Resolution Protocol:逆地址解析协议):正好相反,是将MAC地址解析成IP地址的协议。

  • IP报文结构
    在这里插入图片描述

(4)网络接口层

IP数据包到了这一层,数据链路层会在IP报文的首尾加上首部和尾部代表数据包的结束,封装成帧,首部和尾部都是8位二进制的表示,可以相同也可以不同。
在这里插入图片描述
数据报文到此算是层层封装完毕,在网络中再次通过层层拆包最终将数据送达目的地,其实就是收发快递的模型,十分容易理解。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值