应用进行报文的传递,通过下层的服务完成,传输层提供的socket服务为应用层提供传输服务,socket就像一个门一样,有两种协议,TCP字节流服务和UDP数据报服务,UDP不需要握手,TCP需要握手,
TCP的socket,操作系统返回一个整数,对整数的操作就是对socket的操作,C/S模式服务端先运作,现创建一个socket与本地进行绑定包括IP地址和端口,等待接收。客户端创建socket,跟默认的当前没有用的端口相捆绑,connect进行链接连接成功后,返回一个新的socket值,这个新的socket既与服务器IP和port捆绑又与客户端IP和port捆绑。
也就是不在本地处理数据而是在服务器远端进行处理数据,在传输回来
socket数据结构
1.sockaddr_in
地址族
端口号
IP地址
对齐
可以表示应用进程守候的IP地址和端口号
2.host_env
域名
别名
IP地址
服务端等待Connect表如下
socket | IP地址 | 端口 | IP地址 | 端口 |
8888 | 1.1.1.1 | 80 |
socket | IP地址 | 端口 | IP地址 | 端口 |
7777 | 2.2.2.2 | 70 | 1.1.1.1 | 80 |
上表为客户端等待accept,连接之后出现加粗字,每一个客户端的socket来链接服务端,形成不同的connection socket,服务器去分配不同的的进程去处理,这就变成了多进程或者多线程的问题