精华内容
下载资源
问答
  • 2021-03-18 17:40:37

           TCP/IP指的是因特网整个TCP/IP协议簇,从协议分层模型方面来讲,TCP/IP由4个层次组成:网络接口层、网络层、传输层和应用层。
    在这里插入图片描述
    各层具体工作如下:

    1. 网络接口层:定义了主机间网络连通的协议,具体包括Echernet、FDDI、ATM等通信协议。
    2. 网络层:主要用于数据的传输、路由及地址的解析,以保障主机可以把数据发送给任何网络上的目标。数据经过网络传输,发送的顺序和到达的顺序可能发生变化。在网络层使用IP和地址解析协议( ARP )。
    3. 传输层:使源端和目的端机器上的对等实体可以基于会话相互通信。在这一层定义了两个端到端的协议TCP和UDP。TCP是面向连接的协议,提供可靠的报文传输和对上层应用的连接服务,除了基本的数据传输,它还有可靠性保证、流量控制、多路复用、优先权和安全性控制等功能。UDP是面向无连接的不可靠传输的协议,主要用于不需要类似TCP的可靠性保障和流量控制等。
    4. 应用层: 负责具体应用层协议的定义,包括Tehet、FITP 、SMTP 、DNS、NNTP、和HTTP等。
    更多相关内容
  • 四层网络模型及相关协议

    千次阅读 2019-04-14 20:05:26
    4层网络及相关协议互联网分层数据链路层以太网协议网络层为什么会有网络层IP协议ARP协议传输层为什么会有传输层UDP协议TCP协议应用...TCP/IP网络模型分为四层,分别为应用层、传输层、网络层、数据链路层。 数据链路...


    小渣渣,如有什么问题欢迎指正。

    互联网分层

    互联网分层有很多种,常见的有两种一种是ISO/OSI七层模型和TCP/IP四层模型,对于常用协议的介绍,我根据TCP/IP模型来介绍。
    TCP/IP网络模型分为四层,分别为应用层、传输层、网络层、数据链路层。

    数据链路层

    众所周知,在网线、光缆等数据传输媒介中,数据是以电信号的形式传输,也就是通过0-1电位表示数据,而单纯的0/1是没有意义的,需要规则指定多少电信号算一组、怎么把电信号转换为数据等等。

    以太网协议

    以太网协议定义了数据帧,每一帧传输一段数据,如果数据很长,则需要分帧传输。每一个数据帧分为两个部分,head和data(TCP、IP协议也是分为两部分)
    以太网协议
    Head部分:包含了发送者、接受者、数据类型等等;
    Data部分:包含了传输的具体数据。
    其中,Head固定位18字节,Data部分最少46字节,最长1500字节,因此每个数据帧最少为64字节,最长为1518字节。如果数据很长,则会分为几个数据帧传输,接收方接收后再进行整合获取数据。

    MAC地址
    Head部分中,包含了发送者和接受者信息,这个信息就是MAC地址。
    MAC地址:格式为FF-FF-FF-FF-FF-FF,12个十六进制数表示,前6为表示网卡的生产厂商,后六位表示这款网卡的生产序号。
    (注:以太网协议规定,炼乳网络的所有设备都必须有网卡接口,数据从一块网卡传入另一块网卡,MAC的地址就是网卡的地址,每块网卡有唯一的MAC地址)

    广播
    规则有了,地址也有了,接下来就是数据帧怎么送,以太网中发送数据的方式称为广播。
    以太网送数据像送外卖一样,配送员知道地址后,把外卖送到单元楼下,大声喊谁谁谁的外卖到了,单元的人都能听见,一听,不是我的,我就不拿,一听,哟,我的外卖,就下去取。
    广播:对比这个,以太网送数据时,把数据发送到网络内的总线上,网络内的所有计算机都可以拿到,拿到之后,拆开一看,目标MAC地址不是自身,就丢弃了;目标MAC地址是自身,就收下这个数据包并解析。

    网络层

    为什么会有网络层

    以太网协议,依靠MAC地址发送数据,每个计算机都有唯一的MAC地址,理论上以及完全ok了,但是每个计算机都把自己要发的数据集都放在网络上,然后每个计算机都要解读其它所有计算机的数据包来查看是不是自己的,那就不用干活了,累都累死了。
    网络层,网络层定义了另一种地址,用来定义计算机所在的子网络,就像是你所在的市区,是一个范围。

    IP协议

    网络层定义的地址就是IP地址,规定网络地址的协议叫做IP协议。
    目前广泛使用IP协议的第四版,即IPV4,有32个二进制位组成,但是随着世界上计算机数量的增多,逐渐发现32位慢慢的可能就会不够用了,于是有了IPV6,还在实验阶段,讨论一波IPV4。

    IP地址
    IPV4有32位2进制数表示,通常我们转换为4段十进制数来表示IP地址,从0.0.0.0——255.255.255.255,每台计算机都会有一个IP地址,这个地址分为网络部分和主机部分,每个区域的网络部分和主机部分位数可能不等。
    子网掩码
    但是由于每个区域的差别,网络部分和主机部分的位数可能不太一样,因此出现了子网掩码,用来判断两个IP是否在同一网络。比如网络部分有24位,那么255.255.255.6的子网掩码就是255.255.255.0,通过判断两个计算机IP的子网掩码是否相同就可以知道是否处于同一个子网。

    那么,知道是否处于指望有什么用呢,这就是网络层的作用了。
    如果是同一网络,用广播的形式传递数据;
    如果不是,那就把数据交给路由,它知道怎么传过去。

    IP数据包
    与以太协议相识,IP数据包也包含两部分,Head和Data。
    Head部分:主要包括版本、长度、IP地址等信息;
    Data部分:数据部分。
    IP数据包
    其中,Head部分20-60字节,整个IP数据包最大为65535字节,由于以太网数据包Data部分最多1500字节,而IP协议数据包作为了以太协议的Data部分,所以,通常需要分为多个数据帧传输。
    与以太协议协同作用,就成为了
    IP以太数据包

    ARP协议

    由于IP数据包放在以太网数据包里发送,通过IP寻址,通过MAC地址定位,那么我们怎么能知道目标主机的MAC地址(通常IP地址是已知的,后面解释),所以我们需要用IP地址拿到MAC地址。

    • 两台主机不在同一个子网
      因为有了IP协议,就不会再子网之外进行广播了,所以不太好找到目标MAC地址,但是子网之外的东西网关会解决好的。
    • 两台主机在同一个子网
      可以使用ARP协议,ARP协议发送一个数据包,与IP协议相似,包含于以太数据包中。其中包含了本机IP地址,本机MAC地址目标IP地址,目标MAC地址由于不知道,写的是FF:FF:FF:FF:FF:FF,用来表示这是个广播地址,子网中的计算机都会拿到这个包,然后和自己的IP比较,如果相同,就知道这是个想要我MAC地址的的请求,把自己MAC地址回复。

    传输层

    为什么会有传输层

    通说来讲,还是送外卖,你去到外卖了,你在知道是家里的那个人订的外卖呢,这时候就需要传输层。
    传输层:定义是计算机上那个端口的数据,实现端到端的传输。为0-65535之间的一个整数,其中0-1023端口被系统占用,用户只能选择大于1023的端口。
    因此,数据的发送寻址方式就变成了:MAC地址+IP地址+端口。主机IP地址+端口,又叫做套接字。
    又加了端口这个东西,当然需要在原数据包基础上加东西来放这个端口啊,所以出现了UDP和TCP。

    UDP协议

    UDP数据包也是由Head和Data两部分组成。
    Head部分:定义了发出端口和接收端口;
    Data部分:存放了数据。
    其中,UDP的Head部分8个字节,总长65535字节,正好可以放进一个IP数据包。
    UDP数据包
    和以太网协议和IP协议协同作用为:
    以太+IP+UDP数据包

    TCP协议

    为什么有了UDP,还有TCP呢?
    因为UDP是不可靠传输,就是A发了一段UDP数据包给B,B有可能收到,也可能因为网络等问题收不到,A也不知道是个啥情况,就默认B收到了,对于一些必须要保证给B的数据,这显然不可行,TCP协议就可以保证在网络无问题时,100%传输,就算出错,A自己也能知道。
    TCP协议:TCP数据包中除了数据,有很多其它的字段,这些字段保证了传输的可靠性。保证传输可靠地方式:3词握手,4次挥手。
    TCP数据包
    保证可靠传输会用到序列号(seq),确认号(ack),SYN,ACK,FIN
    序列号:程序用来标识数据包所用的字段
    确认好:用来表示对收到的数据包表示确认收到
    SYN:程序请求建立连接的字段
    ACK:程序确认收到数据的字段
    FIN:程序请求关闭连接的字段
    三次握手
    主机A,主机B
    1.A→B
    seq=x,SYN=1
    主机A请求建立连接
    (注:这一步后,B确认了自己的收报能力)

    2.B→A
    seq=y,ACK=1,SYN=1,ack=x+1
    ACK表示B确认收到A的请求,SYN表示同意建立连接
    (注:这一步后,A确认了自己的发报和收报能力,因为发出去的数据有应答,就说明B已经收到了)

    3.A→B
    seq=x+1,ACK=1,ack=y+1
    ACK表示确认B的请求
    (注:这一步后,B才最终确认自己的发报能力,因为2发给A的有应答)

    3次握手后,表示这个链接是好的,才建立连接,发送数据。

    四次挥手

    1. A→B
      seq=x,FIN=1
      A主机的数据发送完了,所以A发送FIN,发起了断开连接的请求

    2. B→A
      seq=y,ACK=1,ack=x+1
      ACK确认收到了A的数据,但是B的数据还没有传完,所以需要等B把数据包传完之后才断开连接
      (注:这一步之后,B接着传输剩下的数据包)

    3. B→A
      FIN=1,ACK=1,seq=z,ack=x+1
      B的数据传完了,所以也发送FIN表示可以断开连接
      (注:这一步之后,B直接断开连接)

    4. A→B
      ACK=1,seq=x+1,ack=z+1
      A表示收到了B的数据,可以断开连接
      (注:这一步之后,A等待B的应答,经过2MSL之后,还没有收到B的回信,因为B已经关闭连接了,所以A确定B已经断开了,A也断开连接。2MSL为报文在网络上最大生存时间,超过这个时间就会被丢弃)

    应用层

    依旧是外卖,找到了谁定的外卖,不同的外卖吃法不一样,有的要用筷子,有的要用勺子。
    应用层:制定了数据格式,用于对数据的封装与解读。
    举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。
    四层网络结构

    展开全文
  • OSI七层网络模型与TCPIP四层网络模型.pdf
  • OSI七层网络模型与TCPIP四层网络模型资料.pdf
  • 45_你能聊聊TCPIP四层网络模型吗?OSI七层网络模型也说一下!(中)1、 mac地址2、以太网2.1 基于以太网协议 将数据包 广播到局域网的每台电脑2.2 以太网是如何知道哪些电脑是一个子网的?2.3 实际上,电脑单从ip地址...

    在这里插入图片描述

    44_你能聊聊TCP/IP四层网络模型吗?OSI七层网络模型也说一下!(上)

    1、TCP/IP四层模型:

    数据链路层、网络层、传输层、应用层


    1.1 物理层

    1. 电脑和电脑之间联系起来,可以联网,需要一些物理上面上的东西,比如 网线、海底光缆,
    2. 通过这些东西,将电脑和电脑连接起来,这些统一被称之为物理层,

    怎么让电脑之间可以联网呢?

    答案:通过物理层传输0和1信号。

    1.2 数据链路层

    假设两台电脑在物理层面上,两台电脑已经联系起来了,可以传输0和1信号了。

    关键不行,

    问题:你得定义哪些0和1分为一组,这些信号什么意思?

    这才能通信,所以数据链路层就是干这个事情的,定义一些电路信号如何分组。

    定义一套协议,定义哪些0和1是一组,哪些0和1是一组,定义自己电路信号分组方式。

    很多年前,各电脑商家各自定义自己的的电路信号分组。但是这不行啊,必须统一一个电路分组信号,

    后面出了以太网一组信号就是一个数据包叫一个帧每个帧分为两部分标头和数据,标头包含一些说明性的东西,比如发送者、接受者和数据类型之类的。


    45_你能聊聊TCPIP四层网络模型吗?OSI七层网络模型也说一下!(中)

    以太网协议:规定了很多东西

    规定了每台电脑必须有一个网卡,每台电脑要往另外一台电脑发送数据包,数据包包含了 头和数据,头里面包含了从哪里来,到哪里去,必须从一台电脑的一个网卡,发送到另外一台电脑的网卡。

    1、mac地址

    以太网规定,每个网卡必须有一个mac地址mac地址代表了这个网卡的唯一标识

    mac地址,是一组48位的二级制数,也就是一组 12 位的16进制数,其中前 6 个16进制表示电脑产商后 6 个16进制表示网卡唯一标识

    传输数据的时候,必须制定目标电脑的mac地址,目标电脑才能接收到数据。

    2、以太网

    以太网 就将 0和1信号 包装成了 标头和数据

    标头中包含了从哪里来,到哪里去的信息,包含了目标电脑的mac地址, 也包含了源电脑的mac地址

    • 从哪里来,到哪里去的信息
    • 目标电脑的mac地址
    • 源电脑的mac地址

    2.1 基于以太网协议 将数据包 广播到局域网的每台电脑

    以太网的数据,怎么能从一台电脑的mac地址,发送到另外一台电脑的mac地址上去呢

    以太网里面,如果一台电脑发送数据出去,会广播给局域网内所有电脑设备的网卡,然后每台电脑都从数据包中获取 目标电脑的mac地址如果mac地址,和自己的mac地址相同,就说明是发给自己的数据包

    2.2 以太网是如何知道哪些电脑是一个子网的?

    答案:这就得靠 网络层 了,这里有一套IP协议,IP地址可以让我们区分哪些电脑是一个子网的

    网络层里面有IP协议,IP协议里面定义的地址就是IP地址,IP地址有IPV4和IPV6之分,广泛使用的是IPV4,是一个 32 位的二进制数据,也就是 4 个10进制位数据组成,范围在 0.0.0.0 到 255.255.255.255之间。

    每台电脑都会分配一个ip地址,每个ip地址的 前24位 (也就是前3个10进制位)表示网络后8位(就是最好一个二进制位)表示主机

    如果几台电脑在一个子网内,那么这几台电脑的前三个十进制一定是相同的。

    2.3 实际上,电脑单从ip地址是看不出来哪些机器是一个子网的?怎么办呢?

    答案:单单从ip的地址是看不出来哪些机器是一个子网的,因为从10进制是判断不出来的,需要通过ip地址的二进制来判断。

    2.3.1 子网掩码

    这里结合一个概念,叫做子网掩码。

    比如:IP地址是192.168.56.1,子网掩码是255.255.255.0。

    知道了子网掩码之后,如果要判断两个IP地址是不是一样的,就分表把两个ip地址和自己的子网掩码进行一个 二进制的与运算,与运算之后,比较一下网络的那个部分是不是一样的,如果是一样的,表示两台电脑时一个子网内,否则就不是一个子网内的。

    2.3.2 如何两个IP地址是否在一个局域网内?

    1. 将两个IP地址转换为二级制
    2. 将 转换后 的 二进制IP 和 转换为 二进制的 子网掩码 进行一个与运算
    3. 最后,对比与运算过后的结果是否是相同的,如果是相同的,就表示两个IP地址是在一个子网内。

    举例说明

    IP地址1192.168.56.1 -> 1100 0000 1010 1000 0011 1000 0000 0001
    IP地址2192.168.56.100 ->  1100 0000 1010 1000 0011 1000 0110 0100
    IP地址3: 192.168.32.7 -> 1100 0000 1010 1000 0010 0000 0000 0111
    子网掩码:255.255.255.0 -> 1111 1111 1111 1111 1111 1111 0000 0000
    
    
    # 进行与运算后的结果
    IP地址11100 0000 1010 1000 0011 1000 0000 0001
    子网掩码 :1111 1111 1111 1111 1111 1111 0000 0000
    &
    --------------------------------------------------------
               1100 0000 1010 1000 0011 1000 -> 192.168.56.0
               
    IP地址21100 0000 1010 1000 0011 1000 0110 0100
    子网掩码 :1111 1111 1111 1111 1111 1111 0000 0000
    &
    --------------------------------------------------------
               1100 0000 1010 1000 0011 1000 -> 192.168.56.0   
               
    
    
    IP地址31100 0000 1010 1000 0010 0000 0000 0111
    子网掩码 :1111 1111 1111 1111 1111 1111 0000 0000
    &
    --------------------------------------------------------
               1100 0000 1010 1000 0010 0000 0000 0000 ->  192.168.32.0
    
    ip地址和子网掩码 与 运算之后,最终可以发现
    
    IP地址1 和 IP地址2 的运算结果相同,说明属于同一个子网
    IP地址1 和 IP地址3 的运算结果不相同,说明不属于同一个子网
    

    46_你能聊聊TCPIP四层网络模型吗,OSI七层网络模型也说一下!(下)

    有了网络层的ip地址之后,两台在子网内电脑就能通过广播+mac地址来判断 是否是我的数据包,然后进行通信。

    但是如果发现两台电脑不在一个子网内,那么就不能通过广播来发送数据,需要通过路由来发送数据包。

    看到路由,就想到了路由器

    路由器有两块网卡,两块网卡用于连接两个不同子网。

    1、两个不同子网的网卡如何进行通信?

    1.1 大概的过程就是:

    1. 路由器配置了两块网卡,每个网卡可以连接到一个局域网内,可以理解为路由器可以连接两个不同的子网

    2. 局域网1内的一台电脑,要发送数据到局域网2的一台电脑,在数据包中包含了自己的ip地址和对方的ip地址。

    但是因为两台电脑不在同一个子网内,于是局域网1内的电脑,先通过 交换机,以以太网的协议,将数据广播出去,将数据包发送给路由器,这个过程需要将路由器的ip地址对应的mac地址写到数据包的头部,然后才能通过交换机广播出去,路由器接收到之后比较自己一块网卡的mac地址,就知道是不是来找自己的。

    1. 接着路由器接收到数据包之后,就会在局域网2内,将目标机器的IP地址对应的mac地址写入头部,接着再次通过交换机发送广播通知,发送局域网2内的电脑

    1.2 ARP协议

    ARP 用来在一个局域网内让各个设备都知道每个设备的ip地址和mac地址对应关系的,一般就是某个机器发送广播通知自己的ip地址和mac地址的对应关系,然后每台机器给他一个回应。一次类推,大家都互相这样广播一把,ip 地址 和 mac 地址的对应关系,大家都知道了。

    一个局域网内的任何一台网卡,都会将局域网内的任何一台机器的ip地址和mac地址的映射关系缓存起来

    通过以太网协议,基于广播,就可以 通过 目标机器的ip地址 获取 目标机器的 mac 地址,并设置到数据包里面,然后将数据包 通过 交换机 广播出去。

    1.3 总结:

    一个子网内机器之间通信,就是在数据包里写上对方的mac地址,然后通过交换机广播出去;如果是跨子网之间的通信,就是写上对方的ip地址,然后先通过mac地址广播到路由器,让路由器再根据另一个子网ip地址转换为mac地址,通过另一个子网的交换机广播出去,

    1. 网络层最重要的就是IP协议,IP协议里面就定义了一个一个的IP地址,
    2. 通过IP地址可以划分出来一个一个的子网,
    3. 子网内 是 通过 mac地址 + 交换机 走 以太网协议 通过网关来进行通信,
    4. 跨子网的时候,是先通过交换机将数据包 广播 到 网关上面去,局域网内的每台机器都包含 局域网内 其他机器的 ip地址 和 mac地址 的映射关系。
    5. 网关再将数据包进行转发,连续转发,直到转发到某一个网关,
    6. 网关的ip地址 和 目标的ip地址在同一个子网内,最后的那个网关 是 直到 目标机器的ip地址和mac地址的映射关系的,
    7. 通过 目标机器的 mac地址 + 交换机 就可以将 数据包 发送到 目标机器上去。

    2、交换机是什么概念呢?

    • 一种设备
    • 工作在数据链路层
    • 通过 mac 地址来寻址和传输数据包的
    • 主要是局域网的通信,通过数据链路层发送数据包,通过 mac 地址来广播,广播的时候通过网络交换机这个设备把数据广播到局域网的其他机器上去。

    3、网关

    网关是什么东西?可以认为是路由器网卡上面的ip地址

    网关其实就是路由器的一种,这个概念就不多做解释,大家可以就路由器上的ip地址默认是网关,路由器上每个网卡都有一个mac地址和对应的ip地址。

    路由器虽然有mac地址,但是不能通过mac地址去寻址,必须通过ip地址去寻址,所以路由器是工作在网络层的设备。

    4、网络交换机

    工作在数据链路这层的,也是一种网络设备,路由器是工作在网络层的。网络交换机是通过mac地址来寻址和传输数据包的。

    但是路由器是通过ip地址寻址和传输数据包。

    网络交换机主要用在局域网的通信,一般你架设一个局域网里面的电脑是通过数据链路层发送数据包通过mac地址来进行广播和传输数据的广播的时候通过网络交换机这个设备来把数据广播到局域网内的其他机器上去

    路由器一般让你连入因特网

    5、LAN

    local area network,局域网的意思

    6、WAN

    wide area newwork,广域网的意思

    7、WLAN

    wireless local area network,无限局域网的意思,也就是wifi

    8、家里的路由器

    包含路由器和网关的功能

    9、传输层(TCP协议)

    引入了端口的概念,数据是从端口发送出去的,也是用端口进行数据接收的。

    一台机器,有多个程序用一个网卡进行网络通信,比如浏览器、QQ、视频直播,这些软件都是用同一个网卡向外面发送数据,然后网卡接收数据。

    问题:你接收到的数据,你怎么知道哪条数据是给自己的?

    所有还需要一个端口号的概念,

    传输层的tcp协议,仅仅只是规定了一套基于端口点对点的通信协议,包括如何建立连接,如何发送和读取数据,但是实际上如果你要基于 tcp 协议来进行,你一般是用 socket,java socket编程

    10、应用层(HTTP协议)

    某台机器的某个应用的对应监听端口接收到了一个数据包,我要什么方式解析数据呢

    这就需要 使用到 应用层的 协议, HTTP协议,通过http协议来解析数据

    11、DNS

    因为我们一般定位是通过 ip地址 + mac地址 + 端口号 来定位一个通信目标的,但是如果在 浏览器上输入一个 www.baidu.com, 该怎么办呢?这个时候,就需要先把 www.baidu.com 发送给 DNS 服务器,然后 DNS 服务器就会高速你 www.baidu.com 对应的ip地址是什么?

    5、总结

    1、TCP-IP网络模型

    1. 数据链路层(以太网协议)
    2. 网络层(IP协议)
    3. 传输层(TCP协议)
    4. 应用层(HTTP协议)

    2、OSI 七层网络协议

    1. 物理层(网线、海底光缆、传输0/1信号)
    2. 数据链路层(以太网协议)
    3. 网络层(IP协议)
    4. 传输层(TCP协议)
    5. 会话层
    6. 表示层
    7. 应用层(HTTP协议)
    展开全文
  • 44、公众号:面试官:聊聊 TCPIP 四层网络模型?那 OSI 七层网络模型呢?.pdf
  • TCP/IP四层网络模型

    千次阅读 2022-02-10 20:11:37
    TCP/IP网络模型分为四层,从上到下分别为应用层、传输层、网络层、数据链路层 提示:以下是本篇文章正文内容,下面案例可供参考 一、数据链路层 在网线光缆等数据传输媒介中,数据是以电信号的形式传输,也就是0-...

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言

    TCP/IP网络模型分为四层,从上到下分别为应用层、传输层、网络层、数据链路层


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、数据链路层

    在网线光缆等数据传输媒介中,数据是以电信号的形式传输,也就是0-1的电信号表示数据。且包含了物理地址。数据层则是解决物理地址寻址的问题。

    以太网协议

    以太网协议定义了数据帧,每一帧传输一段数据,如果数据很长,则需要分帧传输。每一个数据帧分为两个部分,head和data(TCP、IP协议也是分为两部分)。

    Head部分:包含了发送者、接收者、数据类型等等;

    Data部分:包含了传输的具体数据。

    其中,Head固定18为字节,Data部分最少46字节,最长1500字节,因此每个数据帧最少为64字节,最长为1518字节。如果数据很长,则会分为几个数据帧传输,接收方接收后再进行整合获取数据。

    MAC地址

    Head部分中,包含了发送者和接收者信息,这个信息就是MAC地址。

    MAC地址:格式为FF-FF-FF-FF-FF-FF,12个十六进制数表示,前6为表示网卡的生产厂商,后6为表示这款网卡的生产序号。(注:以太网协议规定,所有网络的所有设备都必须有网卡接口,数据从一块网卡传入另一块网卡,MAC的地址就是网卡的地址,每块网卡有唯一的MAC地址)

    广播

    规则有了,地址也有了,接下来就是数据帧怎么送,以太网中发送数据的方式称为广播。以太网发送数据就像送外卖一样,配送员知道地址后,把外卖送到单元楼下,大声喊谁谁谁的外卖到了,单元的人都能听见,一听,不是我的就不拿,是我的就下去取。

    广播:对比外卖,以太网送数据时,把数据发送到网络内的总线上,网络内的所有计算机都可以拿到,拿到之后,拆开一看,目标MAC地址不是自身,就丢弃了;目标MAC地址是自身,就收下这个数据包并解析。

    二、网络层

    1.为什么会有网络层

    以太网协议,依靠MAC地址发送数据,每个计算机都有唯一的MAC地址,理论上已经完全ok了,但是如果每个计算机都把自己要发的数据集都放在网络上,然后每个计算机都要解读其他所有计算机的数据包来杀看是不是自己的,那就不用干活了,累都累死了。

    网络层,定义了另一种地址,用来定义计算机所在的自网络,就像你所在的市区,就是一个范围。

    IP协议

    网络层定义的地址就是IP地址,规定网络地址的协议叫做IP协议。

    目前广泛使用的是IPV4,但随着世界上计算机数量的增多,逐渐发现32位慢慢不够用了,就有了IPV6。

    IP地址

    IPV4有32位2进制数表示,通常转化为4段十进制数表示IP地址。从0.0.0.0---255.255.255.255,每台计算机都会有一个IP地址,这个地址分为网络部分和主机部分,每个区域的网络部分和主机部分位数可能不相等。

    子网掩码

    但是由于每个区域的差别,网络部分和主机部分的位数可能不一样,因此出现了子网掩码,用来判断两个IP是否在同一各网络。比如网络部分有16位,那么255.255.102.111的子网掩码就是255.255.0.0,通过判断两个计算机IP的子网掩码是否相同就可以知道是否处于同一个子网了。

    知道了是否处于同一子网有什么用呢?这就是网络层的作用了。如果是同一个网络,就用广播的形式传递数据,如果不是,就把数据交回给路由,由路由传到下一跳。

    IP数据包

    IP数据包也分为两部分,Head和Data。

    Head部分:主要包括版本、长度、IP地址等信息;

    Data部分:数据部分

    其中,Head部分20-60字节 ,整个IP数据包最大为65535字节,由于以太网数据包Data部分最多1500字节,而IP协议数据包作为了以太协议的Data部分,所以,通常需要分为多个数据帧传输。
    与以太协议协同作用,就成为了

     ARP协议

    由于IP数据包放在以太网数据包里发送,通过IP寻址,通过MAC地址定位,那么我们怎么能知道目标主机的MAC地址(通常IP地址是已知的,后面解释),所以我们需要用IP地址拿到MAC地址。

    • 两台主机不在同一个子网
      因为有了IP协议,就不会再子网之外进行广播了,所以不太好找到目标MAC地址,但是子网之外的东西网关会解决好的。
    • 两台主机在同一个子网
      可以使用ARP协议,ARP协议发送一个数据包,与IP协议相似,包含于以太数据包中。其中包含了本机IP地址,本机MAC地址目标IP地址,目标MAC地址由于不知道,写的是FF:FF:FF:FF:FF:FF,用来表示这是个广播地址,子网中的计算机都会拿到这个包,然后和自己的IP比较,如果相同,就知道这是个想要我MAC地址的的请求,把自己MAC地址回复。

    三、传输层

    为什么会有传输层

    通俗来讲,还是送外卖,你去到外卖了,你在知道是家里的那个人订的外卖呢,这时候就需要传输层。
    传输层:定义是计算机上那个端口的数据,实现端到端的传输。为0-65535之间的一个整数,其中0-1023端口被系统占用,用户只能选择大于1023的端口。
    因此,数据的发送寻址方式就变成了:MAC地址+IP地址+端口。主机IP地址+端口,又叫做套接字。
    又加了端口这个东西,当然需要在原数据包基础上加东西来放这个端口啊,所以出现了UDP和TCP。

    UDP协议

    UDP数据包也是由Head和Data两部分组成。
    Head部分:定义了发出端口和接收端口;
    Data部分:存放了数据。
    其中,UDP的Head部分8个字节,总长65535字节,正好可以放进一个IP数据包。
    UDP数据包
    和以太网协议和IP协议协同作用为:
    以太+IP+UDP数据包

    TCP协议
    为什么有了UDP,还有TCP呢?
    因为UDP是不可靠传输,就是A发了一段UDP数据包给B,B有可能收到,也可能因为网络等问题收不到,A也不知道是个啥情况,就默认B收到了,对于一些必须要保证给B的数据,这显然不可行,TCP协议就可以保证在网络无问题时,100%传输,就算出错,A自己也能知道。
    TCP协议:TCP数据包中除了数据,有很多其它的字段,这些字段保证了传输的可靠性。保证传输可靠地方式:3词握手,4次挥手。

     

    保证可靠传输会用到序列号(seq),确认号(ack),SYN,ACK,FIN
    序列号:程序用来标识数据包所用的字段
    确认好:用来表示对收到的数据包表示确认收到
    SYN:程序请求建立连接的字段
    ACK:程序确认收到数据的字段
    FIN:程序请求关闭连接的字段

    三次握手
    主机A,主机B
    1.A→B
    seq=x,SYN=1
    主机A请求建立连接
    (注:这一步后,B确认了自己的收报能力)

    2.B→A
    seq=y,ACK=1,SYN=1,ack=x+1
    ACK表示B确认收到A的请求,SYN表示同意建立连接
    (注:这一步后,A确认了自己的发报和收报能力,因为发出去的数据有应答,就说明B已经收到了)

    3.A→B
    seq=x+1,ACK=1,ack=y+1
    ACK表示确认B的请求
    (注:这一步后,B才最终确认自己的发报能力,因为2发给A的有应答)

    3次握手后,表示这个链接是好的,才建立连接,发送数据。

    四次挥手

    1. A→B
      seq=x,FIN=1
      A主机的数据发送完了,所以A发送FIN,发起了断开连接的请求

    2. B→A
      seq=y,ACK=1,ack=x+1
      ACK确认收到了A的数据,但是B的数据还没有传完,所以需要等B把数据包传完之后才断开连接
      (注:这一步之后,B接着传输剩下的数据包)

    3. B→A
      FIN=1,ACK=1,seq=z,ack=x+1
      B的数据传完了,所以也发送FIN表示可以断开连接
      (注:这一步之后,B直接断开连接)

    4. A→B
      ACK=1,seq=x+1,ack=z+1
      A表示收到了B的数据,可以断开连接
      (注:这一步之后,A等待B的应答,经过2MSL之后,还没有收到B的回信,因为B已经关闭连接了,所以A确定B已经断开了,A也断开连接。2MSL为报文在网络上最大生存时间,超过这个时间就会被丢弃)

    四、应用层

    依旧是外卖,找到了谁定的外卖,不同的外卖吃法不一样,有的要用筷子,有的要用勺子。
    应用层:制定了数据格式,用于对数据的封装与解读。
    举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了"应用层"。

    展开全文
  • 1. 应用: 应用(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。用户接口:应用是用户...
  • 因为最近的工作会涉及网络这方面的知识,所以对网络这一块基础内容进行一个回顾,之前在学校学习都是马马虎虎,再次回顾一下这些基础内容,再结合实际工作...一、OSI七层网络模型 OSI是Open System Interconnecti...
  • 四层和七层网络模型

    千次阅读 2019-08-21 17:58:46
    七层模式是在协议没有建立初提出的基础模型,而四层模型是协议建立之后创建的四层基础模型,四层具有实用性并且是按照七层的网络模型建立的,它们都包含了很多的协议。 TCP/IP四层模型 应用层 (HTTP协议,FTP协议...
  • 一、OSI网络分层参考模型 网络协议设计者不应当设计一个单一、巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议。这样做使得每个协议的设计、...
  • OSI七层模型及TCP/IP网络四层模型

    千次阅读 2022-04-07 01:46:20
    快速理解OSI七层模型和TCP/IP七层模型
  • 1 OSI七层模型 1.1 物理 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的 主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0...
  • 浅谈网络四层模型

    千次阅读 2020-03-01 23:57:11
    网络四层模型分别数据链路层,网络层,传输层,应用层,俗称tcp/ip协议族。 tcp和ip协议是其中最常用的两个协议,所谓的四层模型,就是从OSI七层模型中简单缩减而得来的。 下面是四层模型的层级图片: 我们...
  • OSI七层和TCP/IP四层的关系 OSI引入了服务、接口、协议、分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型。 OSI先有模型,后有协议,先有标准,后进行实践;而TCP/IP则相反,先有协议和应用再提出了模型,且是...
  • 后端面试专题 - 计算机网络 - OSI 七层模型,TCP/IP四层模型
  • 网络理论知识1(四层、七层网络模型

    万次阅读 多人点赞 2018-07-17 08:51:10
    一、TCP/IP四层网络模型 TCP/IP分层模型(TCP/IP Layening Model)被称作因特网分层模型(Internet Layering Model)、因特网参考模型(Internet Reference Model)。图2表示了TCP/IP分层模型的四层。  ┌──────...
  • 网络TCPIP四层协议模型分类概括图,网络基础知识归纳图
  • 描述了OSI七层网络模型与TCP/IP四层网络模型的基础知识。
  • 【计算机网络】OSI七层模型和TCP/IP四层模型

    千次阅读 多人点赞 2019-08-16 16:06:14
    ISO是国际标准化组织, 该组织对网络体系结构进行了充分的讨论, 最终制定出了OSI七层网络模型, 旨在将复杂的网络结构标准化, 规范化. 虽然OSI参考模型是计算机网络协议的标准,但由于其开销太大,所以真正采用它的...
  • 网络模型详解(彻底明白OSI七层与TCP/IP四层模型关系)
  • 3、TCP/IP 四层模型和 OSI 七层模型比较 共同点 OSI参考模型和TCP/IP参考模型都采用了层次结构的概念。 都能够提供面向连接和无法连接两种通信服务机制。 OSI参考模型和TCP/IP参考模型的传输层功能基本相似,都是...
  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范 把网络从逻辑上分成了七层,每一层都有相关的协议和物理设备 它的最大优点是将服务、接口和...
  • 一、体系结构 计算机网络的各层及其协议的集合被称为网络的体系结构,按照不同的维度,其常被分为七层、五层、四层网络结构: 1.1 七层网络模型 开放式系统互联模型(Open ...1.2 四层网络模型 互联网协议套件(...
  • OSI七层模型及TCP/IP四层模型

    千次阅读 2021-06-30 23:00:19
    一、OSI七层模型 OSI(Open System Interconnect),即开放式系统互联。...OSI七协议模型主要是:应用(Application)、表示(Presentation)、会话(Session)、传输(Transport)、网络层(Network)、
  • 网络分层模型OSI和TCP/IP四层模型

    万次阅读 2018-08-12 08:17:12
    网络分层模型OSI和TCP/IP四层模型 网络分层模型OSI和TCP/IP四层模型 OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model),是国际标准...
  • TCP四层模型及各层的作用

    千次阅读 2018-10-17 20:58:06
    四层: 应用层 传输层 网络层 数据链路层 作用: 应用层:应用层是在用户空间实现的,负责处理众多业务逻辑,如文件传输、网络管理。 传输层:为应用程序隐藏了数据包跳转的细节,负责数据包的收发、链路...
  • 可以让你更好的了解OSI七层网络模型与TCPIP四层网络模型
  • TCP/IP四层模型

    万次阅读 多人点赞 2018-09-30 16:06:58
    文章目录TCP/IP协议族体系结构以及主要协议数据链路层网络层传输层应用层 TCP/IP协议族体系结构以及主要协议 TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 313,991
精华内容 125,596
关键字:

四层网络模型

友情链接: 新建文件夹.rar