您的位置:首页 > 理论基础 > 计算机网络

001-tcp和socket以及web

2016-01-15 00:43 369 查看

001-tcp和socket以及web

Port

IANA:
0-1023:众所周知,永久地分配给固定的应用使用,特权端口;
1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用;3306/tcp, 11211/tcp;
41952+:客户端程序随机使用的端口,动态端口,或私有端口;其范围定义在/proc/sys/net/ipv4/ip_local_port_range;


BSD Socket

BSD Socket:IPC的一种实现,允许位于不同主机(也可以是同一主机)上的进程之间进行通信;
分类一:
Socket API(封装了内核中的socket通信相关的系统调用)
SOCK_STREAM: tcp套接字
SOCK_DGRAM: UDP套接字
SOCK_RAW:raw套按字

分类二:
根据套按字所使用的地址格式,Socket Domain:
AF_INET:Address Family,IPv4
AF_INET6:ipv6
AF_UNIX:同一主机上的不同进程间基于socket套接字通信使用的一种地址;Unix_SOCK


server-client model



过程分析:

服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket文件

服务器为socket绑定ip地址和端口号

服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开

客户端创建socket

客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket

服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求

客户端连接成功,向服务器发送连接状态信息

服务器accept方法返回,连接成功

客户端向socket写入信息

服务器从socket读入信息

服务器向socket写入信息

客户端从socket读入信息



客户端关闭

服务器端读取到关闭请求

服务器端关闭并继续等待其他客户端请求

http://www.tutorialspoint.com/unix_sockets/client_server_model.htm

TCP connection establishment process

http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentProcessTheThreeWayHandsh.htm

TCP protocol features

建立连接:三次握手;
将数据打包成段:校验和(CRC32)
确认、重传及超时;
排序:逻辑序号;
流量控制:滑动窗口算法;
拥塞控制:慢启动和拥塞避免算法;


HTTP

应用层协议
hyper text transfer protocol
80端口
传输层使用tcp协议

协议版本:
http/0.9:原型版本,功能简陋
http/1.0: cache, MIME, method,
MIME:Multipurpose Internet Mail Extesion
method:GET, POST, HEAD,PUT, DELETE,TRACE, OPTIONS
http/1.1:增强了缓存功能;
spdy
http/2.0:


Web Resource

static:.jpg, .png, .gif, .html, txt, .js, .css, .mp3, .avi,无需服务器处理,每个用户都会得到相同的结果
dynamic:.php, .jsp,需要服务器处理后返回给不同的用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  socket http