网络通信机制:TCP/IP协议族及Http协议通信基础

  相信大家都对掌握网络通信机制,熟悉TCP/IP和HTTP协议一点都不陌生吧,没错,几乎绝大部分的Android,Java等技术岗位要求都提到了这一点,笔者其实非计算机系科班出身,对这块儿内容不是很清楚。于是下定决心比较全面的了解一下这块知识,顺便简单整理了下,仅供大家参考,大神可绕行。
  TCP/IP其实并不是单纯的一种协议,而是代表互联网相关联的协议集合,一般称为TCP/IP协议族。笔者认为其实严格意义上TCP/IP协议族其实是已经包含了HTTP协议的。详见下图:

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

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

TCP/IP 分层管理

  TCP/IP 协议族里重要的一点就是分层。TCP/IP 协议族按层次分别分为以下 4 层:应用层、传输层、网络层和数据链路层。
  

OSI参考模型、TCP/IP参考模型对比

OSI参考模型、TCP/IP参考模型对比

TCP/IP参考模型各层使用协议

TCP/IP参考模型各层使用协议表

把 TCP/IP 层次化有哪些好处?

  1. 如果互联网只由一个协议统筹,某个地方需要改变设计时,就必须把所有部分整体替换掉。而分层之后只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了
  2. 层次化之后,设计也变得相对简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清对方在地球上哪个地方、对方的传输路线是怎样的、是否能确保传输送达等问题。

相关概念

应用层:

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

传输层:

  传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

网络层:(网络互连层)

  网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。
  与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
  

链路层:(数据链路层或网络接口层)

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

TCP/IP 通信传输流

TCP/IP 通信传输流

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

TCP/IP 通信传输流数据封装(encapsulate)

  发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。

与HTTP关系密切的协议

名称分层结构主要作用作用描述
DNS服务应用层负责域名解析根据域名查询IP地址,或根据IP地址反查域名
TCP协议传输层确保可靠性提供可靠的字节流服务
IP协议网络层负责传输把各种数据包传送给对方


1. DNS服务

  用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。
  为了解决上述的问题,DNS 服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
  

2. TCP协议

  TCP 协议为了更容易传送大数据,将大块数据分割成以报文段(segment)为单位的数据包进行管理。采用三次握手(three-way handshaking)策略,把数据包送出去后并确认是否成功送达(确保可靠性)。

这里写图片描述

三次握手

  握手过程中使用了 TCP 的标志(flag) — SYN(synchronize) 和ACK(acknowledgement)。发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表“握手”结束。若在握手过程中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包。
  

3. IP协议

  IP 协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是 IP 地址MAC地址(Media Access Control Address)。

名称描述
IP 地址指明了节点被分配到的地址,容易发生改变
MAC 地址是指网卡所属的固定地址,一般不会发生改变


  IP 间的通讯依赖 MAC地址,而 IP地址可以和 MAC地址进行配对,并且通过ARP协议(Address Resolution Protocol)来解析地址,从而通过通信方的 IP地址反查出对应的 MAC地址。当主机A要与主机B通信时,ARP协议(地址解析协议)可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,MAC地址一旦确定,主机A就能向主机B发送IP通信了。

这里写图片描述

ARP协议(地址解析协议)

各种协议与 HTTP 协议的关系

各种协议与 HTTP 协议的关系

HTTP协议通信流程

本人能力有限,如果此博文中有哪里讲得让人难以理解,欢迎留言交流,若有讲解错的地方欢迎指出,大家互相学期,共同进步!
  
  

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值