网络编程相关概念

71 阅读2分钟

4月「掘金·日新计划」第10天

一、概念

进程间通信5种是内核,socket不同的设备之间通信

1.1、网络通讯需要什么

  1. ip地址:设备

  2. 端口号:设备上面跑的服务进程

    1. ftp,21
    2. telnet,23
    3. tftp,69
  3. 协议:数据格式(http,tcp/udp)

1.2、tcp/udp区别

连接,资源,可靠,字节流报文,

  1. tcp

    1. 面向连接(打电话)
    2. 可靠
    3. 面向字节流
    4. 点对点
    5. 首部开销20字节
    6. 全双工可靠信道
    7. 速度慢
  2. udp

    1. 无连接(发短信,不关心收没收到)
    2. 不可靠
    3. 面向报文,没有阻塞控制(IP电话,实时视频会议)
    4. 一对一,一对多,多对一,多对多
    5. 首部开销8字节
    6. 不可靠信道
    7. 速度快

1.3、字节序

多字节数据在计算机内存中存储或网络传输时各字节的存储顺序

  1. Little endian小端字节序:将低序字节存储在起始位置

  2. Big endian大端字节序: 将高序字节存储在起始位置

  3. 网络字节序 = 大端字节序

    x86系列都是小端字节序

1.4、socket编程步骤

127.0.0.1获取本机地址

  1. 服务器

    1. 创建套接字socket(TCP/UDP)
    2. 添加信息bind(IP,端口号),要转字节序
    3. 监听网络listen
    4. 接受客户端接入连接accept
    5. 数据交互read write
    6. 关闭套接字,断开连接close
  2. 客户端

    1. 创建套接字socket
    2. 发起连接connect
    3. 数据交互read write
    4. 断开连接close

1.5、DNS和轮询

netstat查看端口号状态

  1. DNS

    1. 域名解析系统,根据域名查出对应IP地址
    2. 比如当你要访问域名www.163.com,首先要通过DNS查出它的IP地址是112.48.162.8
    3. nslookup命令,查DNS信息
  2. 轮询

    1. 短轮询:浏览器每隔一段时间向浏览器发送http请求,服务器端在收到请求后,不论是否有数据更新,都直接进行响应
    2. 长轮询:服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,有更新,则进行响应,如果一直没有数据,则到达一定的时间限制(服务器端设置)才返回