美文网首页
计算机网络(2)

计算机网络(2)

作者: BlueFishMan | 来源:发表于2020-06-23 10:35 被阅读0次

    运输层(segment)

    • 用户数据报协议UDP(User Datagram Protocol)
    • 传输控制协议TCP(Transmission Control Protocol)

    UDP

    • 无连接
    • 不可靠交付
    • 面向报文
    • 支持一对一、一对多、多对一和多对多的交互通信
    • 首部开销小

    TCP

    • 面向连接
    • 可靠交付
    • 面向字节流
    • 一对一全双工通信

    进程间通信

    • TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)}

    端口(port number)

    • 客户端->临时端口号
    • 服务器->知名服务端口号(/etc/services)
    应用层协议 运输层协议 端口
    DNS UDP 53
    FTP TCP 21/20
    SSH TCP 22
    HTTP TCP 80
    HTTPS TCP 443
    SMTP TCP 25
    DHCP UDP

    序号(sequence number)

    • A->B,A发送数据->B
    • ISN(Initial Sequence Number,初始序号值)+offset

    确认号(acknowledgement number)

    • A->B,A确认接收<-B
    • 接收的TCP报文段的序号值+1

    标志位(TCP flags)

    • ACK(确认报文段)
    • SYN(同步报文段)
    • FIN(结束报文段)

    窗口(windows size)

    • 接收通告窗口(Receiver Window,RWND)

    校验和(checksum)

    • CRC(首部+数据)

    TCP可靠传输

    TCP超时重传
    • RTO(Retransmission Timeout,重传超时时间)
    • RTT(Round Trip Time)->重传的多义性问题
    • Karn算法
      • 新RTO=2*旧RTO(重传)
      • base(RTO,RTT)(未重传)
    TCP滑动窗口

    TCP流量控制

    TCP拥塞控制

    • 发送方维持一个叫作拥塞窗口cwnd(congestion windows)的状态变量
    • 慢开始门限ssthresh状态变量

    慢开始(slow-start)

    • cwnd < ssthresh
    • 发送方每收到一个确认就把窗口cwnd+1个最大报文段的MSS的数值
    • 指数规律增长

    拥塞避免(congestion avoidance)

    • cwnd > ssthresh
    • 线性规律增长

    快重传(fast retransmit)

    • 让发送方尽早知道发生了个别报文段的丢失

    快恢复(fast recovery)

    • 从连续收到3个重复的确认转入拥塞避免

    TCP运输连接管理

    为什么建连接要3次握手

    • 全双工
    • ISN
    • SYN-ACK
    • 防止已失效的连接请求报文段

    为什么断连接要4次挥手

    • 全双工
    • FIN-ACK

    半关闭状态(FIN_WAIT_2)

    2MSL等待状态(TIME_WAIT)

    • 最长报文段寿命MSL(Maximum Segment Lifetime)
    • 防止最后一次握手的数据报没有传送到对方那里而准备的
    • 防止已失效的连接请求报文段

    网络编程

    网络字节序与主机序

    CPU->主机序

    • C/C++->CPU
    • Java->Big Ending
    • 网络协议->Big Ending->网络字节序

    相关文章

      网友评论

          本文标题:计算机网络(2)

          本文链接:https://www.haomeiwen.com/subject/wvmcfktx.html