美文网首页
网络基础TCP/IP协议

网络基础TCP/IP协议

作者: demoxjl | 来源:发表于2021-03-12 12:12 被阅读0次

    我们通常使用的网络是在TCP/IP协议族的基础上运作的,HTTP属于它内部的一个子集。
    HTTP是一个基于TCP/IP通信协议来传递数据。(HTML 文件, 图片文件, 查询结果等)

    网络基础TCP/IP

    通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的。HTTP属于它内部的一个子集。

    TCP/IP协议族

    计算机与网路设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标,由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需事先确定。不同的硬件,操作系统之间的通信,等都需要一种规则,我们把这种规则称之为协议(protocol)


    TCP/IP是互联网相关的各类协议的总称

    TCP/IP的分层管理

    TCP/IP协议族里最重要的一点是分层。TCP/IP协议族按层次分可分为4层:应用层,传输层,网络层和数据链路层。
    分层的好处是什么呢?如果互联网只有一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。分层之后,只需要把变动的层次替换掉。把各层之间的接口部分规划好之后,每个层次内部的设计可自由改动。


    TCP模型图

    应用层

    应用层决定了向用户提供应用服务时通信的活动。
    TCP/IP协议族内预存了各类通用的应用服务。如:FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名系统),HTTP协议也属于网络层。

    表示层

    表示层:将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式;主要负责数据格式的转换,确保一个系统的应用层信息可被另一个系统应用层读取

    会话层

    会话层:负责建立和断开通信连接(数据流动的逻辑通路),记忆数据的分隔等数据传输相关的管理

    传输层

    传输层对上层应用层,提供处于网络连接中的两台计算机直接的数据传输。
    这一层有两个不同性质的协议:TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol,用户数据报协议)。

    网络层(网络互连层)

    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。这层规定了通过怎样的路径(即传输路线)到达对方计算机,并把数据包传给对方。
    如果与对方计算机之间通过多台计算机或网络设备进行传输时,网络层的作用就是在多个选项内选择一条传输路线。网络层的协议有IP,
    ICMP(Internet Control Message Protocol,Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。),
    IGMP(互联网组管理协议,用于IP主机向任一个直接相邻的路由器报告他们的组成员情况)

    链路层(数据链路层,网络接口层)

    数据链路层用来处理连接网络的硬件部分。包括控制操作系统,硬件的设备驱动,NIC(Network INterface Card,网络适配器,即网卡),及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围内。


    TCP/IP通信传输流

    利用TCP/IP协议族网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。

    物理层

    物理层:负责0、1 比特流(0/1序列)与电压的高低、逛的闪灭之间的转换
    规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性;该层为上层协议提供了一个传输数据的物理媒体。只是说明标准
    在这一层,数据的单位称为比特(bit)
    用http举个栗子:

    1. 发送端的客户端在应用层(Http协议)发出一个想看某个Web页面的http请求;
    2. 为了传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
    3. 在网络层(IP协议),增加作为通信目的的MAC地址后转发给数据链路层。这样整个发往网络的通信请求准备齐全。
    4. 接收端的服务器在数据链路层接收到数据,按照往上层发送,一直到应用层。直到传输到应用层,才算真正接收到客户端发送过来的Http请求。

    与HTTP关系密切的协议:IP、TCP、DNS

    负责传输的IP协议

    按照层次分,IP(Internet Protocol)网际协议位于网络层。
    IP协议的作用:把各种数据包传送给对方。若要保证确实传送到对方那里,则需要满足割裂条件。其中两个重要的条件是IP地址和MAC地址(Media Access Control Address).
    IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP地址可以和MAC地址进行配对。IP地址可变化,但MAC地址基本上不会改变。

    使用ARP协议凭借MAC地址进行通信

    IP间的通信依赖MAC地址。在网络上,通信的双方在同一局域网(LAN)内的情况是很少的,通常是通过多台计算机和网路设备中转才能连接到对方。那么在进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标。此时,会采用ARP协议(Address Resolution Protocol)。
    **ARP是一种用来解析地址的协议,根据通信方的IP地址就可以反查出对应得MAC地址。

    ARP协议凭借MAC地址进行通信
    各层之间传输数据

    TCP协议确保可靠性

    TCP位于传输层,提供可靠的字节流服务。
    字节流服务(Byte Stream Service):为了便于传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。
    可靠的传输服务:能够吧数据准确可靠的传给对方。
    TCP协议为了更容易传送大数据才把数据分割,且TCP协议能够确认数据最终是否送达到对方。
    为了准确无误的将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)策略。
    用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志——SYN(synchronize)和ACK(acknowledgement).
    发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带有ACK标志的数据包,代表'握手'结束。
    (若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包)

    TCP三次握手
    第一次握手
    客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J,
    服务器是被动打开(passive open)
    第二次握手
    服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,
    ACK的序列号是 J+1表示是给SYN J的应答,新发送的SYN K 序列号是K
    第三次握手
    客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,
    然后两边就可以开始数据发送数据了

    负责域名解析的DNS服务

    DNS(Domain Name System)服务是和HTTP协议一个位于应用层的协议。
    它提供域名到IP地址之间的解析服务。
    (我们通常使用主机名或域名来访问某个网站,如www.baidu.com,而不是之间通过IP地址来访问)
    DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。

    DNS域名解析

    下图为IP协议,TCP协议,DNS服务在使用HTTP协议通信过程中各自发挥的作用


    各协议的职责

    相关文章

      网友评论

          本文标题:网络基础TCP/IP协议

          本文链接:https://www.haomeiwen.com/subject/inwjqltx.html