zoukankan      html  css  js  c++  java
  • 02.与HTTP关系密切的协议:IP、TCP、DNS

    1.负责传输的IP协议

    按层次分,IP(Internet Protocol)网际协议位于网络层,TCP/IP协议族中的IP指的就是网际协议。

    IP和IP地址不是一个东西,IP是一种协议的名称

    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地址

    没人能全面掌握互联网中的传输情况(C)

      在到达通信目标前的中转过程中,那些计算机和路由器等网络设备只能获悉很粗略的传输路线。

      这种机制称为路由选择(routing),有点像快递公司的送货过程。想要寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明确下站该送往哪个区域的集散中心。接着,那个区域的集散中心自会判断是否能送到对方的家中。

      我们是想通过这个比喻说明,无论哪台计算机、哪台网络设备,它们都无法全面掌握互联网中的细节。

     

     2.确保可靠性的TCP协议

    TCP协议位于传输层,提供可靠的字节流服务

    字节流服务(Byte Stream Service):是指为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠的传输给对方。

    总而言之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方

    1.确保数据能到达目标

    为了能准确无误的将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)策略。用TCP协议把数据包送出去后,TCP不会对送达后的情况置之不理,它一定会向对方确认是否成功送达。主要用到了TCP的标志——SYN(syncchronize)和ACK(acknowledgement):

     简要说明:

    • TCP是面向链接的,双方需要链接上才能进行数据传输,需要先保证通信的客户端和服务端都有发送数据和接受数据的能力
    • 当客户端第一次发送SYN报文时,可以确认客户端是有发送数据能力的,但是这时不能确认客户端是否有接收数据的能力,以及服务端是否有接收数据和发送数据的能力(第一次握手)
    • 当服务端接收到SYN报文时,这时可以确定服务端是具有接收数据能力的
    • 当服务端回复SYN和ACK报文时这时候可以确定服务端是具有发送数据能力的。到此服务端是有了接收和发送数据的能力(第二次握手)
    • 当客户端接收到服务端的回复时,就可以确定客户端是具有接收和发送数据的能力,但是此时服务端不知道客户端是否接收到数据,即服务端还不知道客户端有没有接收数据的能力,所以客户端需要回复一个ACK报文(即第三次握手)
    • 至此就确定了客户端和服务端都具有接收数据和发哦是那个数据的能力

    四次挥手用来终止该链接

    3.负责域名解析的DNS服务

    DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务

    为什么有DNS解析:

      用户容易理解域名(www.baidu.com),但是计算机更擅长处理IP

      所以为了解决这个问题,DNS服务应运而生。DNS协议提供通过域名查找IP地址,或逆向从IP反查域名的服务

    4.各种协议与HTTP协议的关系

  • 相关阅读:
    ActiveX Technology Background
    Visual Editor Project for Eclipse
    Ubuntu下安装phpmyadmin
    Eclipse + SWT 进行 GUI 界面开发 简介
    使用Silverlight for Embedded开发绚丽的界面(4)
    微软宣布推出Windows Embedded Compact 2013正式版
    Here is the Book List of a programmer who want to upgrade his/her skill (zz)
    NVARCHAR versus VARCHAR (zz)
    Stlport Tips
    别在js中写后台地址了,用好React/Vue脚手架的环境变量
  • 原文地址:https://www.cnblogs.com/codexlx/p/14143786.html
Copyright © 2011-2022 走看看