4月「掘金·日新计划」第10天
一、概念
进程间通信5种是内核,socket不同的设备之间通信
1.1、网络通讯需要什么
-
ip地址:设备
-
端口号:设备上面跑的服务进程
- ftp,21
- telnet,23
- tftp,69
-
协议:数据格式(http,tcp/udp)
1.2、tcp/udp区别
连接,资源,可靠,字节流报文,
-
tcp
- 面向连接(打电话)
- 可靠
- 面向字节流
- 点对点
- 首部开销20字节
- 全双工可靠信道
- 速度慢
-
udp
- 无连接(发短信,不关心收没收到)
- 不可靠
- 面向报文,没有阻塞控制(IP电话,实时视频会议)
- 一对一,一对多,多对一,多对多
- 首部开销8字节
- 不可靠信道
- 速度快
1.3、字节序
多字节数据在计算机内存中存储或网络传输时各字节的存储顺序
-
Little endian小端字节序:将低序字节存储在起始位置
-
Big endian大端字节序: 将高序字节存储在起始位置
-
网络字节序 = 大端字节序
x86系列都是小端字节序
1.4、socket编程步骤
127.0.0.1获取本机地址
-
服务器
- 创建套接字socket(TCP/UDP)
- 添加信息bind(IP,端口号),要转字节序
- 监听网络listen
- 接受客户端接入连接accept
- 数据交互read write
- 关闭套接字,断开连接close
-
客户端
- 创建套接字socket
- 发起连接connect
- 数据交互read write
- 断开连接close
1.5、DNS和轮询
netstat查看端口号状态
-
DNS
- 域名解析系统,根据域名查出对应IP地址
- 比如当你要访问域名
www.163.com,首先要通过DNS查出它的IP地址是112.48.162.8 - nslookup命令,查DNS信息
-
轮询
- 短轮询:浏览器每隔一段时间向浏览器发送http请求,服务器端在收到请求后,不论是否有数据更新,都直接进行响应
- 长轮询:服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,有更新,则进行响应,如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回