目录
Socket套接字
1.概念
2.分类
1.TCP和UDP:
特点:
(1)有连接 VS 无连接
(2)可靠传输 VS 不可靠传输
丢包:
为啥会出现丢包?
如何对抗丢包?
(3)面向字节流 VS 面向数据报
(4)全双工 VS 半双工
上篇文章网络原理学习了:
1.网络的核心概念
2.封装分用流程
3.TCP/IP哪五层+每层干啥的(需倒背如流)
问题:当数据交给上一层的时候,是由哪个协议负责进行解析的呢?eg:数据链路层到网络层传输时,是交给ipv4还是ipv6呢?网络层传输到传输层,交给TCP解析还是UDP呢?
答:每个协议报头中都包含对应的信息,告诉你上一层是要交给哪个协议来处理的,不能自己决定的
网络编程套接字,也就是跨主机通信
操作系统提供的网络编程的API称为‘socket api”
目前:见到socket这个词,就可以认为是”网络编程的API“的统称
操作系统提供的socket api其实不只有一套,而是有好几套~~
(1)流式套接字 =》给TCP使用的
(2)数据报套接字 =》给UDP使用的
(3)Unix域套接字 =》不能跨主机通信,只是本地主机上的进程和进程之间的通信方式(现在使用的很少了)
TCP和UDP都是传输层协议,都是给应用层提供服务的
但是由于这两个协议,特点,差异非常大,因此我们需要搞两套api,来分别表示
TCP:有连接,可靠传输,面向字节流,全双工
UDP:无连接,不可靠传输,面向数据报,全双工
有连接