几个基本的概念
-
1.TCP/IP协议族
计算机与网络设备之间的信息传输需要基于相同的方法,不同设备通信之间的规则,称之为协议,而与互联网相关联的协议集合起来总称为TCP/IP,也就是说TCP/IP是互联网相关的协议集合;
此外还有说法认为TCP/IP就是指TCP/IP这两种协议,还有一种说法认为TCP/IP是 在IP协议的通信过程中,使用到的协议族的统称;
-
-----------2.TCP/IP的分层管理----------------
TCP/IP协议族按层次分别分为应用层,传输层,网络层以及数据链路层,称之为TCP/IP协议的四层网络模型:
-
应用层
应用层决定了用户提供应用服务时通信的活动;
TCP/IP预存了各类通用的应用服务:
类似FTP(file transfer protocol 文件传输协议) ,DNS(Domain Name System)服务,HTTP协议等等;
-
传输层
传输层对上层应用层,提供处于网络连接中的两台的计算机之间的数据传输.
个人理解传输层主要是提供各种控制,操作从应用层传输过来的数据的协议;
有两个协议TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)
-
网络层(网络互连层)
网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位.该层规定了通过怎样的路径/传输路线到达对方的计算机,并把数据包传送给对方.
与对方的计算机之间通过多态计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项中选择一条作为传输路线;
-
数据链路层(又称为链路层,网络接口层)
用来处理连接网络的硬件部分.包括控制操作系统,硬件的设备驱动,NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介).硬件上的范畴都在数据链路层的作用范围内.
-
-------------3.TCP/IP的通信流-----------------
在利用TCP/IP进行网络通信的时候,会通过分层的顺序与对方进行通信.发送端会从应用层往下走,而接收端则从应用层往上走;
如上图所示:
作为发送端的客户端在应用层按照HTTP协议的规定发送一个想要看某个web页面的HTTP请求;
在传输层按照TCP(传输控制协议)的规定,把从应用层接收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层;
在网络层按照IP协议的规定,增加作为通信目的地的MAC地址后转发给链路层;
链路层实质上是硬件上的连接,通过各种硬件设备实现网络数据的交换;
接收端的服务器在链路层接收到数据,按顺序向上层发送,一直发送至应用层,当传输至服务器端应用层,才算真正的接收到了客户端发送过来的HTTP请求;
-
---------4.IP,TCP,和DNS--------------------
-
负责传输的IP协议
IP协议(Internet Protocol,网际协议)位于网络层,其作用是搜索服务器端的地址,而为了准确无误的传输,则需要满足各种条件;其中最重要的两个条件则是IP地址和MAC地址,
- IP地址指明了节点的分配位置;
- MAC地址则是网卡的所属的固定地址;
注意: IP地址是可以变换的,但是MAC地址则是网卡的固定地址,是无法变换的;
地址传输协议维基解释
当在同一局域网的一台主机希望和另一台主机直接通信的时候,这时候必须知道目的主机的MAC地址是什么?因此这时候需要ARP(Address Resolution Protocol)来将目的主机的IP地址转换为MAC地址.
但是当发送主机和目的主机不在同一个局域网的时候,这个时候即使知道目的主机的MAC地址,也无法直接发送过去,所以在这种情况下,发送主机通过ARP协议获取的MAC地址获取的将不是目的主机的真实目的地址,而是一台可以通向局域网外部的路由器的地址,当数据帧发送至这台路由器中转直至找到目的主机;
-
确保可靠性的TCP协议
TCP协议位于传输层,,提供字节流(Byte Stream Service)服务.
所谓字节流服务,是指将大数据分割为报文段(segment)的数据包进行管理;
TCP协议通过三次握手策略(acknowledgement)来确保数据包能够准确的到达目标位置;
-
负责域名解析的DNS服务
DNS(Domain Name System)服务是和HTTP协议一样位于应用层,提供域名到IP地址之间的解析服务;通过DNS服务可以实现:
通过域名查找iP地址;
通过IP地址反查域名;
-
-----------5.各种协议与HTTP协议间的关系图------------------;
在这里要注意的是:
- 最后网络层与数据链路层的搜寻目标服务器端的地址的操作时同时发生的,并不是搜寻了两次;
- 客户端发出一个HTTP请求后,会在客户端本地的host文件中去找主机对应的ip地址,如果找不到,则会通过公网的DNS服务来解析请求的域名,将其转换为ip地址;
- 从服务器端到客户端的流程与从客户端到服务器端的流程是一致的;
HTTP协议的基本结构
HTTP协议(Hypertext Transer Protocal ,超文本传输协议),同TCP/IP协议族的其他协议主要用于客户端到服务器端的通信;
-
----------------1.HTTP请求报文--------------------
HTTP的请求报文主要由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成;
在这里要注意get和post请求方法的区别在于:
(1)客户端给服务器端传输数据的方式不一样;
- get方式通过URL地址栏传递数据;
- post方式通过表单的方式来传递数据;
(2)安全性,GET方式在url上传递,可以被用户查看到,而post通过表单提交,相对比GET安全;
(3)传递数据的大小;GET通过URL地址栏传递数据,数据大小受浏览器和操作系统的影响,IE浏览器只能通过get传递2K左右的数据;而POST原则上不受限制,但是受服务器配置的影响,一般服务器默认允许2MB左右数据,这个可以自己设置;
(4)表单默认是通过GET提交到服务器,可以通过method属性设置提交的方式;
(5)超链接默认是GET方式请求: