ftp http tcp 哪个传输最快_细读《图解HTTP》第一章

1c75ccee69a3a3de330840cad705d9e3.png

网络基础TCP/IP

TCP/IP协议

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

c1e24d90197e1ee1e135f900448e065e.png

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

协议中存在各式各样的内容。 从电缆的规格到 IP 地址的选定方法、寻找异地用户的方法、 双方建立通信的顺序, 以及 Web 页面显示需要处理的步骤, 等等。像这样把与互联网相关联的协议集合起来总称TCP/IP。 还有一种说法认为,TCP/IP 是在 IP 协议的通信过程中,使用到的协议族的统称。

TCP/IP分层

1f30cdbff3fb50a4f6840aff4ea2631d.png

TCP/IP协议族分为四层:应用层、 传输层、 网络层和数据链路层。

分层后, 设计也变得相对简单了。 处于应用层上的应用可以只考虑分派给自己的任务, 而不需要弄清对方在地球上哪个地方、 对方的传输路线是怎样的、 是否能确保传输送达等问题。

应用层

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

传输层

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

网络层(又名网络互连层)

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

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

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

TCP/IP 通信传输流

发送端在层与层之间传输数据时, 每经过一层时必定会被打上一个该层所属的首部信息。 反之,接收端在层与层传输数据时, 每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装(encapsulate)

b864e4b473988ff30d1ec6e9a20148fa.png

TCPIP通信数据流

负责传输的 IP 协议

IP(Internet Protocol) 网际协议位于网络层。几乎所有使用网络的系统都会用到 IP 协议。 TCP/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 地址。没有人能够全面掌握互联网中的传输状况在到达通信目标前的中转过程中, 那些计算机和路由器等网络设备只能获悉很粗略的传输路线。这种机制称为路由选择(routing) , 有点像快递公司的送货过程。 想要寄快递的人, 只要将自己的货物送到集散中心, 就可以知道快递公司是否肯收件发货, 该快递公司的集散中心检查货物的送达地址, 明确下站该送往哪个区域的集散中心。 接着, 那个区域的集散中心自会判断是否能送到对方的家中。

0900a882fbf8f420a2313706d62ce4d0.png

IP协议工作流程

确保可靠性的 TCP 协议

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

5684e27f3bc5af459bc78f6c883c7ee6.png

TCP确认流程

负责域名解析的 DNS 服务

我们在访问某一个网站站点时,通常都是使用域名来访问对方的计算机,而不是直接通过 IP地址访问。因为人类的记忆更擅长记录一些用字母、数字相结合的计算机名。但是让计算机更擅长处理一长串数字。DNS 服务则充当了人类与计算机的翻译任务,通过DNS服务器,建立域名与IP地址的映射表,来提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

DNS(Domain Name System) 服务是和 HTTP 协议一样位于应用层的协议。 它提供域名到 IP 地址之间的解析服务。人类在访问网站时一般都是在浏览器上输入网站的域名,如,计算机会先通过DNS查询到对应的IP地址,再通过IP路由把访问请求路由到目的服务器。

588a0601ff57a746702656fed2196258.png

DNS服务流程

各种协议与 HTTP 协议的关系

学习了和 HTTP 协议密不可分的 TCP/IP 协议族中的各种协议后, 我们再通过这张图来了解下 IP 协议、 TCP 协议和 DNS 服务在使用HTTP 协议的通信过程中各自发挥了哪些作用。

d445bd2add4e91e0cbb9c65d2ffb0354.png

HTTP与TCP、IP、DNS协同工作流

URI 和 URL

8ab4db2d0853339451b41a633b55996e.png

URI包含URL、URN以及URL+URN三种

URI 用字符串标识某一互联网资源, 而 URL 表示资源的地点(互联网上所处的位置) 。 可见 URL 是 URI 的子集。

让我们先来了解一下绝对 URI 的格式也就是一个URL

c0518c9cbb2ea6a78ab8a9e496e7f8ac.png

通俗的来说,就是:

URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI,在设计过程中,设计了两种方法来定位这个资源:

1,URL用地址定位;

2,URN 用名称定位。

举个例子:在某个城市找个具体的人(URI),如果用地址:某村多少号房子第几间房的主人 就是URL, 如果用身份证号+名字 去找就是URN了。

结果就是 目前WEB上就URL流行开了,平常见得URI 基本都是URL。

如需《图解HTTP》电子书,可私信邮箱发给我!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值