第一步:通过应用程序将抽象语言转换为编码
第二步:将编码转换为二进制
第三步:将二进制转换为电信号
第四步:处理电信号
osI七层参考横型
核心:分层
应用层:人机交互的窗口,将抽象语言转换为编码
表示层:将编码转换为二进制
会话层:建立维护汇话连接
传输层:建立端到端的传输。端口号--区分进程和服务
0-65535,1-1023著名端口号
网络层:通过IP地址做的逻辑寻址。
数据链路层:MAc地址--物理地址-- ITCP/IP模型
数据链路层:MAC地址--物理地址--
每个出场主板都有固定的mac物理地址
TCP/UDP
![](https://i-blog.csdnimg.cn/blog_migrate/3ca202b787825b0ecacf7e5a0286515b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5ad8d55503ec083b836c7c05311bd1fc.png)
TCP更加可靠--UDP时不可靠的协议 排序、确认、重传、流控--滑动窗口机制 1.面向连接 2.可靠机制 3.tcp可以分段UDP不能 4.tcp可以流控,UDP不能
TCP
TCP是一个面向连接的协议主要包括以下几个特性
1、TCP面向连接,需要进行三次握手建立连接,四次挥手断开连接。
2、面向流的处理,可以一个个字节的方式接收数据,然后把这些数据组成数据段,发给网际层。
3、对数据发送进行流量控制(滑动窗口协议),避免发送和接收方因为缓存写满而造成的数据丢失问题。
3、对数据进行校验、分段的数据有重新排序功能,对错误和丢失的数据有重发机制
UDP
1、UDP不面向连接。
2、只有有限的错误检验机制
3、不进行流量控制
比较TCP和UDP
因为TCP要进行额外的握手、挥手、数据检验、排序机制,所以TCP的性能要比UDP要慢,但是相较UDP,TCP已经做了比较完善的数据错误验证机制所以这样会省去应用层需要做的大量数据验证工作。
如果应用层对数据的校验不那么重视的话,看可以使用性能上更优的UDP,当然也可以使用UDP传输数据,数据校验的工作放到应用层来做也行,这就会加重开发的任务上