TCP/IP协议简述

TCP/IP协议是一个协议集合。TCP/IP协议族中有一个重要的概念是分层,TCP/IP协议按照层次分为以下四层。应用层、传输层、网络互连层、网络接口层。
在这里插入图片描述

互联网中信息以数据包的单位传输,不同的协议层对数据包有不同的称谓,在传输层叫做段 (segment),在网络层叫做数据报 (datagram),在链路层叫做帧 (frame)

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息,这种把数据信息包装起来的做法称为封装(encapsulate)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理

在这里插入图片描述

  • 应用层(负责包装数据)
    HTPP协议,生成针对目标服务器的请求报文。那报文包含啥呀,比如我web端或客户端要将一个“name”字段传到服务器,那么报文就是对name的包装,比如我是用get还是post请求方法,请求的URL是啥,内容实体"name",content-type等,虽然有些是你在代码里设置的,但是需要将你设置的内容按照http协议里要求的格式进行封装,然后服务器也会按照这个协议定义的格式进行解析,拿到"name"这个字段。所以可以简单的理解为对数据按一定格式包装,当然FTP协议也属于这一层,区别可自行搜索。在这一层的还有DNS(域名解析)服务,将URL解析成对应的IP地址,比如www.baidu.com会解析成192.166.xx.xx,用户通常使用域名来访问服务器,而不是IP地址,因为与一串数字的IP地址相比,用字母配合数字的表现形式来制定计算机名更符合人类的记忆习惯,查找过程如图:
    在这里插入图片描述
    HTTP是不保存状态的协议:HTTP协议自身不对请求和响应之间的通信状态进行保存、这是为了更快的处理大量事务,确保协议的可伸缩性。应用中为了实现保持登录状态功能引入了Cookie技术。
    TCP持久连接:
    在这里插入图片描述
    管线化:持久化接使得多数请求以管线化(pipelining)方式发送成为可能。 从前发送请求后需等待并收到响应,才能发送下一个请求。管线化化技术 出现后,不用等待响应亦可直接发送下一个请求。
    在这里插入图片描述
    Cookie交互场景
    在这里插入图片描述
  • 传输层(负责运输数据)
    应用层把要传输的数据包装好了以后,就会给到下一层,也就是传输层,传输层负责两台设备之间的数据运输,TCP和UDP都属于这层,TCP就是提供可靠的字节流服务。字节流服务,就是可以将大的数据分割成小的数据进行管理传输,可靠是指可以把数据准确可靠的传给对方。

所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP 协议为了更容易传送大数据才把数据分割,而且 TCP 协议能够确认数据最终是否送达到对方。

为了提供可靠的传输,TCP在正式传输数据前采用了三次握手的策略,一保证传输的可靠性,如图所示:
在这里插入图片描述

  • 网络层(负责导航规划路线)
    传输层进行握手和传输数据的时候,如何找到对方的就得靠网络层了, IP协议就属于该层,IP协议的作用就是规划数据可以走哪条路到达服务器,并把数据给服务器,规划的前提是知道服务器的IP地址和服务器的MAC地址,IP地址是指上网设备在网络世界中被分配到的地址,MAC地址是指上网设备(手机、电脑)中网卡的编号。

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

IP地址已经在应用层通过DNS服务解析出来了,现在就差服务器的MAC地址,有了服务器的IP地址和MAC地址以后,就可以查找到服务器了。采用APR(Address Resolution Protocol)地址解析协议,就可以根据IP地址反查出电脑的MAC地址(服务器网卡的地址) 。但是互联网世界这么大,网线中间经过了无数个路由器进行连接中转(并不是咱们家里自己用的WIFI发射信号的路由器),所以每个路由器都只知道一部分电脑IP地址对应的MAC地址,所以根据APR协议查找MAC地址时可能需要中转好几次,如图:
在这里插入图片描述

  • 链路层(中介)
    这一层就是硬件层面的东西了,说白了就是让计算机这块塑料金属组装的玩意和网络世界连接起来的硬件部分,比如网卡等。可以将网线传输过来的电信号,转成010101的数字信号,然后就可以变成我们想要的数据。

用一张图总结一下:
在这里插入图片描述
参考资料来源:黑色蚂蚁_MGLMHSLZ1devmao

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值