HTTP/TCP/IP协议

发布于 2021-03-07  589 次阅读


以往我对于计网中的协议内容是一知半解的,不清楚三次握手,四次挥手的实现以及各层模型所对应的协议;

正巧在Github上了解到《图解HTTP》这本书,漫画形式更容易理解,且增添了不少趣味,于是开始阅读此书;

以下为个人关于其中知识点的总结:

 

了解web及网络编程

1.1本章概述:web建立在何种技术之上,以及HTTP协议如何诞生并发展;

使用HTTP协议访问Web

客户端:通过发送请求获取服务器资源的Web浏览器等,都可以称之为客户端Client;

协议:规则的约定;

Web建立在HTTP协议上通信:Web使用名为HTTP的协议作为规范,完成从客户端到服务器段等一些列操作流程;

 

1.3网络基础TCP/IP

1.3.1TCP/IP协议族

计算机与网络设备要相互通信,双方必须基于相同的方法;比如,如何探测到通信目标,由那一边先发起通信,使用那种语言进行通信,怎样结束通信等规则都需要事前确定。不同的硬件,操作系统之间的通信,这一切都需要一种规则为大家所遵守从而达到通信目的,此种规则称之为协议(protocol);

TCP/IP则是互联网相关的各类协议族的总称,HTTP是其子集,还有DNS,UDP,FTP,FDDI,SNMP等;

协议内容:协议中存在各式各样的内容,从电缆的规格到IP地址的选定方法,寻找异地用户的方法,双方建立通信的顺序,以及Web页面需要处理的步骤等;

 

1.3.2TCP/IP协议族的分层管理

TCP/IP协议族按层次分别分为以下四层:应用层,传输层,网络层和数据链路层;

分层优点:如果互联网只由一个协议统筹,某个地方需要修改设计时,就必须把所有的部分整体替换掉;而分层之后只需要把变动的层替换掉即可;比如,修改电缆的规格,那么只需要修改数据链路层所使用的相关电缆规格的协议,而无需更改其他层的协议内容;层次化之后,设计也变得相对简单,处于应用层上的应用可以只考虑分派给自己的任务,无需考虑对方在地球上哪个地方,传输路线如何,是否能确保传输到达等问题;

因此:分层使各层内部的设计可以自由改动;

设计变得更加简单和灵活,各层专注于自己的任务;

各层作用如下:

应用层决定了向用户提供应用服务时通信的活动;

如FTP和DNS(解析域名)以及HTTP;

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

传输层的两个性质不同的协议:TCP和UDP;

网络层用来处理在网络上流动的数据包;数据包是网络传输的最小数据单位,该层规定了通过怎样的路径(即传输路线)到达对方计算机,并把数据包传送给对方;

与对方计算机之间通过多态计算机或者网络设备进行传输时,网络层的作用就是在众多的选项内选择一条传输路线;

数据链路层用来处理连接网络的硬件部分,包括控制操作系统,硬件的设备驱动,NIC(网络适配器---网卡)及光纤等物理可见部分;硬件上的范畴均在数据链路层的作用范围之内;

 

1.3.3TCP/IP通信传输流(重要)

利用TCP/IP协议族进行网络通信时,通过分层顺序与对方进行通信;发送端从应用层(上)往链路层(下)走,接收端则从链路层(下)往应用层(上)走;

举例:

作为发送端的客户端在应用层(HTTP协议)发出一个想看某个Web页面的HTTP请求;

接着,为了方便传输,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,在各个报文上打上标记序号及端口号,然后转发给网络层;

在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层;

至此发往网络的通信请求准备齐全;

接收端在数据链路层接收到数据,按序往上层发送,直到应用层;

当传输到应用层,才算真正接收到客户端所发送的HTTP协议;

封装:将数据信息包装起来;

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

 

1.4与HTTP关系密切的协议:IP,TCP和DNS;

1.4.1负责传输的IP协议(网络层)

按层次分,IP协议位于网络层;几乎所有使用网络的系统都会用到IP协议;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地址;

路由选择(rounting):想寄快递的人,只要将自己的货物送到集散中心,就可以知道快递公司是否肯收件发货,该快递公司的集散中心检查货物的送达地址,明确下站该送往哪个区域的集散中心;接着,哪个区域的集散中心会判断是否能送到对方家中;

 

1.4.2确保可靠性的TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务;

字节流服务:为方便运输,将大块数据分割成以报文段segment为单位的数据包进行管理;

TCP协议:为了更容易传送大数据将数据分割,并且能够确认数据最终是否达到对方;

确保数据到达目标:三次握手(three---way handshaking)策略;

TCP的标志:SYN和ACK;

 

若在握手过程某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包;


她喜欢所以就做咯