zoukankan      html  css  js  c++  java
  • TCP/IP网络知识

    1.TCP/IP概念

      TCP/IP不是单指一种传输协议,而是一组传输控制协议/互联网协议。

    2.TCP/IP分层

      (计算机网络中,实际应用的网络协议是TCP/IP协议族,TCP/IP的应用层大体上对应着OSl/RM模型的应用层、表示层和会话层,TCP/IP的网络接口层对应着OSI/RM的数据链路层和物理层,而传输层和网络层在两个模型中对应得很好。)

        其分层关系如下图

        

    3.TCP/IP特性

        面向连接的,可靠的,基于字节流的传输层通信协议;

        网络地址统一分配,网络中每一设备和终端都具有一个唯一地址;

        TCP/IP不依赖于任何特定的计算机硬件或操作系统,提供开放的协议标准等。

    4.TCP三次握手和四次挥手

        TCP报文段首部包含

          序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号
          确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号
          确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效
          同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0
          终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接

        TCP三次握手

          1.客户端向客户端发出请求报文段。(SYN=1,seq=x)

          2.服务端若同意客户端的请求,则发回确认报文。(SYN=1,ACK=1,ack=x+1,seq=y)

          3.客户端收到确认报文之后,通知上层应用进程连接已建立,并向服务器发出确认报文,其首部:ACK=1,ack=y+1。当服务器收到客户端的确认报文之后,也通知其上层应用进程连接已建立。(ACK=1,ack=y+1)

        TCP四次挥手

          1.数据传输结束以后,客户端的应用进程发出连接释放报文段,并停止发送数据。(FIN=1,seq=u)

          2.服务器端收到连接释放报文段之后,发出确认报文。(ack=u+1,seq=v)

          3.若服务器已经没有要向客户端发送的数据,其应用进程就通知服务器释放TCP连接。(FIN=1,ACK=1,seq=w,ack=u+1)

          4.客户端收到连接释放报文段之后,必须发出确认释放请求,然后TCP连接才真正结束。(ACK=1,seq=u+1,ack=w+1)

    5.UDP特点及报文结构

        特点:

          面向非连接,不维护连接状态,可以同时向多个客户端传输相同的消息

          数据包报头只有8个字节,额外开销小

          吞吐量只受限于数据生成速率,传输速率以及机器性能等

        报文结构:

          

    6.HTTP协议

        简介:

          HTTP协议是应用层的超文本传输协议,是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

        特点:

          支持客户/服务器模式

          简单快速且灵活

          无连接(无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间)

          无状态

        消息结构:

          客户端请求消息:(包含请求行,请求头部,空行,请求数据)

          

          服务端响应消息:(包含状态行,消息报头,空行,响应正文)

          

    更多相关知识可以查看上一篇博客:https://www.cnblogs.com/ywb-articles/p/10633270.html

  • 相关阅读:
    js少写if语句
    框架大集合
    new运算符工作原理(new运算符的伪码实现)
    原始数据类型和引用数据类型
    关于input 的选中,自定义input[type="checkbox"]样式
    css伪类与伪元素
    js 的function为什么可以添加属性
    工具,如何去掉百度编辑器 ueditor 元素路径、字数统计等
    多种框架好库的混合使用
    js预编译的四部曲
  • 原文地址:https://www.cnblogs.com/ywb-articles/p/11143423.html
Copyright © 2011-2022 走看看