Socket通信原理+实例(课程论文)
网络通信协议课程要求了解Socke通信原理,并写一篇小论文,解释Socket原理,举例一个实例。
参考几位大佬的文章,汇总成这篇小论文
http://c.biancheng.net/view/2123.html
https://blog.csdn.net/jiushimanya/article/details/82684525
1.Socket简介
在网络盛行的时代,我们每天的生活都离不开网络,当我们打开浏览器浏览网页时,使用微信、QQ聊天时,是怎样进行通信的呢?这些都需要靠Socket。那Socket是什么?Socket的类型有什么,Socket的基本函数有什么?下文将进行说明。既然我们了解了Socket是与网络通信有关,那么就先复习一下网络的通信结构。
1.1 网络通信结构
网络通信结构如图1分为五层:物理层(媒体)、数据链路层、网络层、运输层、应用层。每个层次都有属于自己协议,物理层为,数据链路层包括ARP,RARP协议,网络层包含ICMP、IP、IGMP协议,运输层包含TCP、UDP协议、应用层是各个客户端。
平常使用的程序(软件)一般都是通过应用层访问网络的,程序产生的数据会一层一层地向下传输,直到最后的物理层,通过网线发送到互联网中。数据每向下走一层,就会被这一层的协议添加一层包装,发到互联网时,在原始数据的基础上已经多了四层包装。当另一台计算机接受到数据包时,会一层一层得拆开包装,直到最后的应用层,就得到了最原始的数据。
图(1)
那么Socket在网络通信结构的那个位置呢?图2中Socket的位置一目了然。Socket是应用层与运输层之间通信的中间软件抽象层,它是一组接口,将复杂的TCP/IP、UDP协议隐藏在Socket接口后,对于用户来说,一组简单的接口就是需要掌握的全部内容,使网络中间的通信简单了很多。
图(2)
1.2 Socket的基本操作
1)socket()函数:创建套接字
int socket (int domain, int type, int protocol);
- domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET、AF_INET6、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。协 议族决定了socket的地址类型,在通信中必须采用对应的地址,如AF_INET 决定了要用ipv4地址