码迷,mamicode.com
首页 > 其他好文 > 详细

socket套接字

时间:2017-07-16 17:29:29      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:unix   socket   套接字   

传输层:提供进程地址

  • Port     number:

                        tcp:传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后拆除链路;

0-65535

udpUser Datagram Protocol,无连接的协议;

0-65535

  • IANA:

0-1023:众所周知,永久的分配给固定的应用使用,特权端口,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

1024-41951:亦为注册端口,但要求并不是特别严格,分配给程序注册为某应用使用,11211/tcp, 11211/udp (memcached), 3306/tcp(mysql)

41952+:客户端程序随机使用的端口;动态端口,或私有端口;其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

  • Socket: IPC的一种实现,允许位于不同主机(甚至同一主机)上不同进程之间进行通信;数据交换;Socket API, 1983年,4.2 BSD

SOCK_STREAMtcp套接字

SOCK_DGRAMudp套接字

SOCK_RAW: 裸套接字

  • IPv4:

A1-127

B128-191

C192-223

D:组播,224-239

E240-254

  • 私有地址:

A10.0.0.0/8

B172.16.0.0/16-172.31.0.0/16

C192.168.0.0/24-192.168.255.0/24

  • TCP协议的特性:

建立连接:三次握手

将数据打包成段:校验和(CRC-32)

确认、重传以及超时:

排序:逻辑序号

流量控制:滑动窗口算法

拥塞控制:慢启动和拥塞避免算法

  • Socket     Domain(根据其所使用的地址):

AF_INETAddress FamilyIPv4

AF_INET6IPv6

AF_UNIX:同一主机上不同进程之间通信时使用;

每类套接字都至少提供了两种socket:流,数据报

流:可靠地传递、面向连接、无边界;

数据报:不可靠地传递、有边界、无连接

  • 套接字相关的系统调用:

socket(): 创建一个套接字;

bind():绑定

listen():监听

accept():接收请求

connect():请求连接建立

write():发送

read():接收

send(), recv(), sendto(), recvfrom()


本文出自 “勤能补拙” 博客,请务必保留此出处http://echoroot.blog.51cto.com/11804540/1947835

socket套接字

标签:unix   socket   套接字   

原文地址:http://echoroot.blog.51cto.com/11804540/1947835

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!