博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重新认识网络通信协议
阅读量:7062 次
发布时间:2019-06-28

本文共 1371 字,大约阅读时间需要 4 分钟。

hot3.png

OSI网络分层

  1. 应用层

http, smtp,pop3这些都属于应用层协议

为用户的应用程序提供服务

  1. 表示层

确保一个系统的应用层发送的信息被另一个系统的应用层接收到

  1. 会话层

通过传输层建立数据传输的通道

  1. 传输层

定义了传输协议和网络端口(www和80端口)

  1. 网络层

为处于不同地理位置的两台主机提供链接和路径选择

  1. 数据链路层

定义如何让格式化数据进行传输,以及如何让控制对物理介质的访问

  1. 物理层

物理设备标准,网线接口、光纤接口

TCP/IP协议

  1. 应用层(OSI中的应用层、表示层、会话层)

应用层面向不同的网络应用引入不同的网络协议,有基于TCP的,例如文件传输(FTP)、虚拟终端协议(TELNET)、超文本链接协议(HTTP),同样也有基于UDP协议的,例如域名解析服务(DNS)。

  1. 传输层

传输层的功能是使源端主机和目标端主机可以进行对等的会话。定义了两种协议1、传输控制协议(TCP)2.用户数据报协议(UDP)

  1. 网络互连层

定义了分组和互联协议,即IP协议

  1. 主机到网络层(OSI中的数据链路层、物理层)

 

何为IP协议

用于将多个包交换网络连接起来的,它在源地址和目的地址之间传输一种称为数据包的东西,它还能提供将数据大小的重新组装功能,以适应不同网络对包大小的要求

 

 

 

何为TCP协议

TCP协议最核心的就是三次握手过程,断开连接的四次分手过程

 

三次握手协议

  1. 客户端发送一个随机序列码(1000),发起连接,并等待服务端相应
  2. 服务端收到客户端请求后,发送自己初始序列码(1234),并将客户端的随机序列码加一后(1001)发还给客户端
  3. 客户端接收到服务端响应后,将服务端的初始序列码加一(1235)后,作为最终应答发还给服务端,此时链接建立成功

 

四次挥手协议

首先,挥手协议无论客户端还是服务端,均可主动发起

主动方、被动方由发起close命令来区分,并非严格规定挥手是由客户端还是服务端发起

 

  1. 主动方发起一个挥手,发送一个FIN,然后关闭主动方与被动方的数据传输,进入FIN_WAIT状态
  2. 被动方接收到到主动方发送的FIN后,发送一个ACK相应给主动方,此时被动方进入CLOSE_WAIT状态
  3. 被动方发送一个FIN给主动方,用于关闭被动方与主动方的数据传输,此时进入LAST_ACK状态
  4. 主动方收到FIN后,进入TIME_WAIT状态,接着发送一个ACK确认给被动方,然后进入CLOSE状态,完成四次挥手

 

一次完整的http请求是如何实现的

  1. 首先浏览器和服务端建立TCP的三次握手协议
  2. 浏览器向服务器发送一个命令,http://www.baidu.com,并且发送完成一个再发送一个空白行告知服务端发送信息结束
  3. 客户端发送完毕以后,服务端会向客户端会送应答,一般就是我们在header头中常见的状态码,例如200,404,500等
  4. 然后服务端根据客户端的请求地址相应具体的文档或相应结果
  5. 当服务端相应完结果后,会按照约定的conten-type,向客户端把信息发送过来
  6. 当服务端把信息发送给客户端后,原则上会将tcp请求关闭。若是connection若是设置为keep-alive(长链接的时候都是开启的)。这样的话tcp会始终保持

 

 

转载于:https://my.oschina.net/u/3869202/blog/3039607

你可能感兴趣的文章
IOS 手势-轻点、触摸、手势、事件
查看>>
Java并发编程系列
查看>>
WCF中配置文件解析
查看>>
Skyline培训完,做的程序代码
查看>>
Header:请求头参数详解
查看>>
转:BASH数组
查看>>
第八课:日期的扩展与修复
查看>>
关于字符数组要注意的一个小问题
查看>>
GNU ARM嵌入式汇编注释方法
查看>>
xml file too big to import to wordpress website
查看>>
python初学小结二:Import、字符串切片、列表的切片、enumerate()说明、字典、ptyhon-copy()与deepcopy()区别...
查看>>
shell脚本切割tomcat的日志文件
查看>>
HTML5 Video Player概览
查看>>
学会使用Git创建分支
查看>>
Spring可扩展的XML Schema机制
查看>>
学习笔记之曾国藩家书
查看>>
libSVM 参数选择
查看>>
UVA10976 Fractions Again?!
查看>>
express 获取本地文件夹下的图片和文件
查看>>
Spring Boot定时任务应用实践
查看>>