TCP/IP协议浅谈

1、TCP协议

面向连接、可靠的、通过字节流传输的协议
它是TCP/IP参考模型的传输层,传输层的目的是建立端与端之间的通信,也就是表现在Ip的端口与端口之间的通信建立
它的功能是由操作系统提供,让应用程序之间实现通信

  • 1.1 面向连接

    数据在通信开始之前先做好通信两端之间的准备工作,也就是三次握手的连接建立

  • 1.2 可靠

    通过***、确认应答、重发控制、连接管理及窗口控制机制实现可靠性传输。

  • 1.3 确认应答

    通过肯定的确认应答实现可靠连接。发送端将数据发出之后会等待对端的确认应答。

  • 1.4 ***

    ***是识别解决发送端数据丢失或确认应答丢失的情况,从而进一步用重发控制解决丢失问题。

    • TCP的seq/ack序号是如何变化的?
      Seq:发送端读取data stream的开始位置,从0序号开始。
      Ack:期望对端下次发送的data stream的开始位置,目的为了对端在发送数据前,检验对端seq(对端的值)+1=Ack
      TCP/IP协议浅谈
  • 1.5 连接管理

    • 建立连接
      标志位:[SYN]=1>>请求建立连接
      三次握手,为了确保双方的发送和接收功能都正常,为了保证性能,握手的次数要求尽可能少
      TCP/IP协议浅谈
    • 断开连接
      标志位:[FIN=1]>>请求断开连接
      四次挥手,因为TCP协议通信是全双工,双方都可以同时收发数据,所以要确认方数据是否都接受完成
      TCP/IP协议浅谈
      TCP/IP协议浅谈
  • 1.6 字节流

    数据在网络传输的时候要转成字节

2、IP协议

寻址跨越网络传送数据包
它是TCP/IP参考模型的网络层。广域网通信是用IP通信的,局域网是MAC地址寻址,当然也用到ARP协议在局域网,把IP转成MAC地址通信。
它的功能是由操作系统提供,连接两台主机

  • 2.1 ip地址组成

    网络部分:标识子网
    主机部分:标识主机
    TCP/IP协议浅谈

    例子:已知IP地址192.168.1.1和192.169.1.2的子网掩码都是255.255.255.0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,

    192.168.1.1: 1100 0000.1010 1000.0000 0001.0000 00001
    AND
    255255.255.255.0: 1111 1111.1111 1111.1111 1111.0000 0000


    1100 0000.1010 1000.0000 00001.0000 0000

    192.168.1.2: 1100 0000.1010 1000.0000 0001.0000 00010
    AND
    255255.255.255.0: 1111 1111.1111 1111.1111 1111.0000 0000


    1100 0000.1010 1000.0000 00001.0000 0000
    AND运算得网络地址结果相等:1100 0000.1010 1000.0000 00001.0000 0000->192.168.1.0

参考图解TCP/IP
参考林海峰老师的网络基础https://www.cnblogs.com/linhaifeng/articles/5937962.html