http协议笔记
2016-02-13 00:01
531 查看
http的七层模型
应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS
表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错效验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link):
建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
物理层(Physical Layer):
建立、维护、断开物理连接。(由底层网络定义协议)
三次握手和四次握手的区别
建立连接时,由于服务器没什么其他的事做,基本是同步的,所以服务器发送ack的时候,会顺带发送syn 因此连接是这样的: (1)c----->syn---->s (2)c<-----syn_ack<----s
(3)c----->ack---->s 而释放连接时,由于双方的动作不一定同步,比如一方要关闭,但另一方的数据还没传结束呢,所以往往上面的(2)步往往不能一起做完了,而是拆分成两步,先ack一下,表示知道您要关闭了,我这边稍等下再fin,所以关闭连接往往是这样的: (1)c----->fin---->s (2)c<-----ack<----s (3)c<-----fin<----s (3)c----->ack---->s 当然,首先接到fin的一方如果没什么数据要传了,也是可以三步搞定的,完全看协议栈的具体实现:
(1)c----->fin----...
应用层 (Application):
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS
表示层(Presentation Layer):
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、DECOIC、加密格式等
会话层(Session Layer):
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层 (Transport):
定义传输数据的协议端口号,以及流控和差错效验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
网络层 (Network):
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6) ARP RARP
数据链路层 (Link):
建立逻辑连接、进行硬件地址寻址、差错校验等功能。(由底层网络定义协议)
将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
物理层(Physical Layer):
建立、维护、断开物理连接。(由底层网络定义协议)
三次握手和四次握手的区别
建立连接时,由于服务器没什么其他的事做,基本是同步的,所以服务器发送ack的时候,会顺带发送syn 因此连接是这样的: (1)c----->syn---->s (2)c<-----syn_ack<----s
(3)c----->ack---->s 而释放连接时,由于双方的动作不一定同步,比如一方要关闭,但另一方的数据还没传结束呢,所以往往上面的(2)步往往不能一起做完了,而是拆分成两步,先ack一下,表示知道您要关闭了,我这边稍等下再fin,所以关闭连接往往是这样的: (1)c----->fin---->s (2)c<-----ack<----s (3)c<-----fin<----s (3)c----->ack---->s 当然,首先接到fin的一方如果没什么数据要传了,也是可以三步搞定的,完全看协议栈的具体实现:
(1)c----->fin----...
相关文章推荐
- socket编程 -- 基于TCP协议的C/S通信模型及实现
- 1834: [ZJOI2010]network 网络扩容
- 02环信集成SDK基础功能 - 网络掉线自动重连
- android下载网络数据的几种方法
- Android开发笔记(六十二)HTTP数据格式的解析
- 【翻译自mos文章】OGG replicat 进程使用的 TCP 端口
- Android Studio 更新 Android 6.0 之后无法使用 org.apache.http 包的问题
- 基于httpClient3的多线程版本,使用spring管理生命周期
- 深度学习方法(六):神经网络weight参数怎么初始化
- 深度学习方法(六):神经网络weight参数怎么初始化
- 深度学习方法(六):神经网络weight参数怎么初始化
- Android Studio API23以后HttpClient
- 网络基础知识
- eclipse JavaEE版"javax.servlet.http.HttpServlet" was not found on the Java Build Path问题的解决办法
- 一个TCP/IP通信的实例
- 多线程版本httpClient4文章地址记录
- 那些被吹的神乎其乎的QQ营销大法
- iOS开发网络篇—搭建本地服务器(待整理)
- html5 网络状态
- 【slighttpd】基于lighttpd架构的Server项目实战(11)—C++的Name Mangling