一、传输层

  1、协议:TCP/UDP

  2、报头地址:端口号port,范围是0-65535,其中0-1023是给系统用的。

  3、ip(ip+mac)+port可以定位到全球唯一的那个基于网络通信的应用程序。

  4、TCP协议的通信需要先建立连接,连接分为客户端到服务端和服务端到客户端两个不同的单向通道。

  5、建立连接是为了传输数据做准备,通常过程是:客户端提出开客户端通道的请求===》服务端回复接受请求并同时提出开服务端通道的请求===》客户端回复接受请求。这个过程称为三次握手。

  6、客户端和服务端的数据分别向对面传输完毕后,需要断开连接时,要分别解除各自的单向通道,通常是服务端先发起,过称为:服务端提出解除服务端通道的请求===》客户端回复接受请求并等待自己客户端数据传输结束====》提出解除客户端通道的请求===》服务端回复接受请求。这个过程称为四次挥手。

  7、TCP协议是可靠传输:发送数据必须等到对方确认才算完成,才会将该数据从自己的内存中清理,否则会尝试重新发送。

  8、高并发:正常的一对一数据传输,当数据传输完毕后进行的断开连接的过程本应该非常短,服务端在自己数据传输完毕后会直接执行关闭申请并应马上收到客户端的反馈进入TIME_WAIT,但是如果有大量客户端与同一个服务端建立了连接,因为客户端的数据传输不同步,会形成服务端一直在TIME_WAIT的状态,所以工作人员可以基于服务端出于TIME-WAIT的时长,衡量并发量的高低。

  9、TCP协议的半连接池backlog:为了限制同一时间能够与服务端建立连接的客户端数量,设置了一个定额的空间用于临时搁置后续的客户端申请,待前面的客户端数据传输完毕断开了连接后,再让连接池内的客户端依次与服务端建立连接,超过连接池客户端访问会有序等待进入连接池。

二、应用层

  1、组成:报头+应用程序的数据

  1、报头:可自定义的协议,但是长度必须固定,包含发送方的端口,数据类型,数据长度,接收方的端口等。

  3、如果是BS架构,需要遵循浏览器的协议,比如http,https,ftp等。

三、网络通信其他补充:egon老湿:https://www.cnblogs.com/linhaifeng/articles/5937962.html#_label14

 

posted on 2020-05-01 02:01  焚音留香  阅读(135)  评论(0编辑  收藏  举报