http基础(随缘更新)
前言:过年有点无聊,写写博客吧,顺便也总结一下。
1.TCP/IP协议族
1.1 定义
什么是协议?协议是为了解决计算机与网络设备通信所
制定的一种规则,只有使用相同的规则,才能顺利通信。
TCP/IP族协议一般来说指的不单单是TCP和IP两个协议,而是与互联网相关联的协议集合。
1.2 TCP/IP的分层管理
TCP/IP协议族分为四个层,依次是,应用层、传输层、网络层、数据链路层,注意,存在上下层关系。现在的分层模式是对理论分层模式即OSI模型的实际使用,将OSI模型的七层合并为四层,上三层合并,最后的两层合并,便有了现在的四层模型。
分层自然是由其的意义,分层使得不同的任务分离起来,在进行设计时,各层之间相互独立,某一层并不会去关心其他层如何实现,在进行修改时,也只需要修改对应的层就行,并不需要对整体进行修改。而三层中只有最下两层有实体设备,其它层都是软件层面的表示。
1.2.1 应用层
应用层决定了向用户提供应用服务时的通信活动,TCP/IP协议族中预存通用的应用服务,例如FTP、DNS服务,HTTP协议也处于该层。
1.2.2 传输层
传输层提供处于网络连接中的两个计算机间的数据传输,分为TCP协议和UDP协议。
1.2.3 网络层
该层规定了通过什么路径将网络传输的最小单位,数据包传输给对方计算机,即选择一条合适路线进行数据包传递。代表设备:路由器。
1.2.4 数据链路层
主要用于处理网络连接之中的硬件部分,例如网卡,操作系统,硬件的驱动等。代表设备:二层交换机,网卡,网线,光纤,atm线缆等。
1.2.5 TCP/IP的通信传输过程
以HTTP举例,当我们想浏览一个网页时,首先从源主机发出数据交给应用层,在应用层(HTTP协议)加上必要的控制流程形成报文流,即一个HTTP请求到传输层(TCP协议)。
为了便于传输,会将接受到的HTTP报文加上本层的控制信息,即标记好相应的顺序和端口号,并对其进行分割,形成报文段和数据报,然后发给网络层(IP协议),然后网络层给数据加上目的地的MAC地址后发给数据链路层。
在数据链路层上,数据只能从一个网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了对方MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。
通过数据链路层传输到接受端的服务器,按顺序从下向上传输,一直传输到应用层,才算接受到了HTTP请求。
发送端再层与层之间传输数据时,经过一层会被打上一个该层的首部信息,接收端每经过一层会去掉对应的首部。这种包装信息包的方式被称为封装。
1.3 IP、TCP和DNS
1.3.1 IP协议
IP协议的全称为Internet Protocol 也就是网际协议。处于网络层,几乎所有的网络系统都会用到IP协议。注意,IP和IP地址是两个东西。
IP协议的作用就是把数据包传给对方,要保证确实传从,则需要满足各类条件,其中最重要的就是IP地址和MAC地址