不同层有各自的职能,组合起来,就像排列组合一样,根据不同的需要组合成不同的排列,比如,同样的ip协议,有的要TCP协议长连接方式,有的要UDP方式。分成不同层,就可以满足更多不同的需求。
在链路层,数据以帧的形式传输,格式分两部分,帧头和帧体,头部记录了网卡的信息,帧体记录了传输的数据,一帧最大为1518个字节。当要传输的数据如图片大于它时,就会分成多个帧来传输;
在网络层,从链路层中帧体,可以拿到ip标头和ip数据
以上,相当于在一个‘体’中,封装了头+体的数据格式,就像递归,不同数据之间存在着层级关系,层与层之间的识别只需要拿到相应数据层的‘头’信息来标识
所以,在传输层,就从网络层的ip数据体中拿到传输层的‘头’+‘体’信息:TCP/UDP标头和TCP/UDP数据,如果是UDP协议,标头就会相对比较简单
socket:是网络通信的端点,ip+端口可以识别一个进程,用socket来封装ip+端口,就可以来进行网络通信
同步、异步、阻塞、非阻塞:
同步:接收方会执行完请求才返回结果
异步:接收方会立刻返回结果,但实际结果会晚点再发,类似被叫回去等通知
阻塞:发起方在没拿到结果前一直等待
非阻塞:发起方在没拿到结果前可以做其他事情
同步阻塞:发起方等待,接收方也等执行完才返回结果
异步阻塞:发起方等待,接收方先返回一个通知,等晚点才返回真正结果
同步非阻塞:发起方不等待,接收方执行完才返回结果
异步非阻塞:发起方不等待,接收方也会先返回一个通知,晚点执行完才返回结果
比如:老师发布成绩,学生拿到成绩,考完试后,学生是不是一直挂念成绩结果,就等同于阻塞非阻塞;而老师不管学生是怎样的,我是不是立刻就改试卷不做其他事,还是跟学生说后天发布成绩,就等同于同步异步