TCP/IP 协议族按层次分别分为如下 4 层: 应用层、 传输层、 网络层和数据链路层网络
把 TCP/IP 层次化是有好处的。 好比, 若是互联网只由一个协议统筹, 某个地方须要改变设计时, 就必须把全部部分总体替换掉。 而分层以后只需把变更的层替换掉便可。 把各层之间的接口部分规划好以后, 每一个层次内部的设计就可以自由改动了。值得一提的是, 层次化以后, 设计也变得相对简单了。 处于应用层上的应用能够只考虑分派给本身的任务, 而不须要弄清对方在地球上哪一个地方、 对方的传输路线是怎样的、 是否能确保传输送达等问题大数据
应用层操作系统
应用层决定了向用户提供应用服务时通讯的活动。TCP/IP 协议族内预存了各种通用的应用服务。 好比, FTP(FileTransfer Protocol, 文件传输协议) 和 DNS(Domain Name System, 域名系统) 服务就是其中两类。HTTP 协议也处于该层。设计
传输层3d
传输层对上层应用层, 提供处于网络链接中的两台计算机之间的数据传输。在传输层有两个性质不一样的协议: TCP(Transmission ControProtocol, 传输控制协议) 和 UDP(User Data Protocol, 用户数据报协议) 。blog
网络层( 又名网络互连层)接口
网络层用来处理在网络上流动的数据包。 数据包是网络传输的最小数据单位。 该层规定了经过怎样的路径(所谓的传输路线) 到达对方计算机, 并把数据包传送给对方。与对方计算机之间经过多台计算机或网络设备进行传输时, 网络层所起的做用就是在众多的选项内选择一条传输路线。资源
链路层( 又名数据链路层, 网络接口层)字符串
用来处理链接网络的硬件部分。 包括控制操做系统、 硬件的设备驱动、 NIC(Network Interface Card, 网络适配器, 即网卡) , 及光纤等物理可见部分(还包括链接器等一切传输媒介) 。 硬件上的范畴均在链路层的做用范围以内。域名
利用 TCP/IP 协议族进行网络通讯时, 会经过分层顺序与对方进行通讯。 发送端从应用层往下走, 接收端则往应用层上走。
发送端在层与层之间传输数据时, 每通过一层时一定会被打上一个该层所属的首部信息。 反之, 接收端在层与层传输数据时, 每通过一层时会把对应的首部消去
与 HTTP 关系密切的协议 : IP、 TCP 和DNS
负责传输的 IP 协议
几乎全部使用网络的系统都会用到 IP 协议,IP 协议的做用是把各类数据包传送给对方。 而要保证确实传送到对方那里, 则须要知足各种条件。 其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address) 。IP 地址指明了节点被分配到的地址, MAC 地址是指网卡所属的固定地址。 IP 地址能够和 MAC 地址进行配对。 IP 地址可变换, 但 MAC地址基本上不会更改
IP 间的通讯依赖 MAC 地址。 在网络上, 通讯的双方在同一局域网(LAN) 内的状况是不多的, 一般是通过多台计算机和网络设备中转才能链接到对方。 而在进行中转时, 会利用下一站中转设备的 MAC地址来搜索下一个中转目标。 这时, 会采用 ARP 协议(Address Resolution Protocol) 。 ARP 是一种用以解析地址的协议, 根据通讯方的 IP 地址就能够反查出对应的 MAC 地址。
确保可靠性的 TCP 协议
TCP 协议为了更容易传送大数据把数据分割成数据包进行传输, 并且 TCP 协议可以确认数据最终是否送达到对方
为了准确无误地将数据送达目标处, TCP 协议采用了三次握手
握手过程当中使用了 TCP 的标志(flag) —— SYN(synchronize) 和ACK(acknowledgement) 。
发送端首先发送一个带 SYN 标志的数据包给对方。 接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。 最后, 发送端再回传一个带 ACK 标志的数据包, 表明“握手”结束。若在握手过程当中某个阶段莫名中断, TCP 协议会再次以相同的顺序发送相同的数据包
负责域名解析的 DNS 服务
DNS 协议提供经过域名查找 IP 地址, 或逆向从 IP 地址反查域名的服务
经过这张图来了解下 IP 协议、 TCP 协议和 DNS 服务在使用HTTP 协议的通讯过程当中各自发挥了哪些做用
URI 用字符串标识某一互联网资源, 而 URL表示资源的地点(互联网上所处的位置) 。 可见 URL是 URI 的子集