网络七层协议
- 应用层: 用户接口,应用层序,网关,HTTP协议等
- 表示层:数据表示,相当于一个东西的表示,比如图片,声音,视频
- 会话层:会话的建立和结束,RPC,SQL,NFS,ASP
- 传输层:端到端的控制,TCP,UDP,SPX
- 网络层:路由熏制Network,路由器, IP、IPX、APPLETALK、ICMP
- 数据链路层:保证无差错链路的data link 交换机,网桥,802.2、802.3ATM、HDLC、FRAME RELAY;
- 物理层:传输比特流 集线器 中继器 V.35、EIA/TIA-232.
HTTP协议
HyperTextTransferProtocol(超文本传输协议)是用于从万维网服务器传送超文本到本地浏览器的传输协议,HTTP 是一个应用层协议,由请求和相应构成,是一个标准的客户端服务器模型。
C/S模式
Client 和 Server 常常分别处在相距很远的两台计算机上,Client 程序的任务是将用户的要求提交给 Server 程序,再将 Server 程序返回的结果以特定形式显示给用户;Server 程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序
网络通信过程
- 假设本机IP是192.168.0.1访问首先需要把域名解析为IP地址,需要使用DNS协议,像DNS服务器查询IP地址。
- 知道了IP地址开始向服务器请求数据,访问服务器使用http协议,在传输层使用TCP协议,TCP协议通过三次握手连接服务器。
- 三次握手
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN+RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次状态。
image.png
常见的问题
TCP和UDP的区别
• TCP是面向连接的,建立连接需要经历三次握手,保证数据正确性和数据顺序
• UDP是非连接的协议,传送数据受生成速度,传输带宽等限制,可能造成丢包
• UDP一台服务端可以同时向多个客户端传输信息
• TCP报头体积更大,对系统资源要求更多