全球旧事资料 分类
UNIXSOCKET编程简介
Postedo
200506171646tariuswusBlog阅读4171评论2编辑收藏引用所属分类UNIX
1.LayeredModelofNetworki
g
Socket编程的层次模型如下图所示,
最上面是应用层,应用层下面的是SOCKETAPI层,再下面是传输层和网络层……实际上,SocketsAPI层并不是一个真正定义的网络层次,但却很好的描述了Socket编程所处的位置和所扮演的角色。TCP状态转换图
f2.什么是SOCKET?
简单的,Socket可以被定义描述为两个应用通信通道的端点。一个Socket端点可以用Socket地址来描述,Socket地址结构由IP地址,端口和使用协议组成(TCPorUDP)。
3.Socket地址结构
f网络中以主机IP、端口以及使用的协议表明一个网络应用。UNIXSocket将它们组成一个结构,统称为SOCKET地址结构。
31IPv4对应的SOCKET地址结构
通常也称为“网际SOCKET地址结构”,以“socketaddr_i
”命名,定义在头文件
eti
eti
h中。
所涉及到的数据类型:所涉及到的数据类型:
32IPv6对应的SOCKET地址结构
f33
通用地址结构
当地址结构作为传递给任何一个SOCKET函数的参数时,任意一个Socket函数必须能处理每一种地址结构,为了解决这个问题,提出了使用通用套接口地址结构。当任何一个地址结构要作为指针参数传到套接口函数时,必须要显示转化为通用地址结构。在IPv4应用中,使用的通用地址结构为structsockaddr定义在syssocketh中,
例如:
f在IPv6中,提出了一种新的通用地址结构:structsockaddr_storage定义在
eti
eti
h中。
structsockaddr和structsockaddr_storage的区别ifsupportListsa.e
difstructsockaddr_storage能提structsockaddr_storage供严格的结构对齐ifsupportListsb.e
difstructsockaddr_storage能struct容纳系统支持的更大的地址结构
34Socket地址结构的比较
f4.Clie
tServerModel
Clie
tServer的网络通信模型是使用最广最为基础的通信模型。在SocketAPI环境,其应用可以归纳为:
fTCP链接建立根据TCPIP协议,函数co
ect激发TCP的三路握手过程。客户端给服务器一个SYNJ信号,服务器返回一个ACKJ1然后服务器给客户端一个SYNK客户端也同样给服务器一个ACKK1,这样就算co
ect成功。注意:服务器返回的SYNK和ACKJ1是放在同一个分节中发给客户端的,因此链路在建立连接时只用了三个分节,故称为三路握手。
TCP链接终止TCP用三个分节建立一个链接,而终止连接时需要四个分节。原因在于被动关闭链接一方需要关闭处理时间,因此ACK和FIN不能同时发给主动关闭一方。
f主动关闭一方在收到ACKr
好听全球资料 返回顶部