zoukankan      html  css  js  c++  java
  • 传输层协议总结

    传输层

    1.只有主机才有的层次
    2.传输层使用网络层的服务为应用层提供通信服务
    

    传输层的功能

    1.传输层提供进程与进程之间的通信
    2.网络层提供主机之间的逻辑通信
    3.复用和分用
    4.传输层对收到的报文进行差错检测
    5.传输层的两种协议:tcp,udp
    

    tcp与udp

    tcp:
    1.面向连接的传输控制协议tcp
    2.传送数据之前必须建立连接,数据传送结束后要释放连接,不提供广播或多播服务,由于tcp要提供可靠的面向连接的传输服务,因此不可避免增加了许多开销,确认,流量控制,计时器及连接管理等
    3.可靠,面向连接,时延大,适用于大文件
    
    udp:
    1.无连接的用户数据报协议udp
    2.传送数据之前不需要建立连接,收到udp报文后也不需要给出任何确认
    3.不可靠,无连接,时延小,适用于小文件
    

    传输层的寻址与端口

    1.复用:应用层所有的应用进程都可以通过传输层再传输到网络层
    2.分用:传输层从网络层收到数据后交付指明的应用进程
        逻辑端口/软件端口 是传输层的SAP,标识主机中的应用进程
        
    端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的
    
    端口号长度16bit,能表示65536个不同的端口号
    
    端口号:
      1.服务端使用的端口号
         1.熟知端口号:给tcp/ip最重要的一些应用程序,让所有用户都知道,0-1023
        2.登记端口号
         1.为没有熟知的端口号应用程序使用的1024-49151
     2.客户端使用的端口号
        1.仅在客户端进程运行时才动态选择的端口号49152-65535
    
    FTP:21
    TELNET:23
    SMTP:25
    DNS:53
    TFTP:69
    HTTP:80
    SNMP:161
    
    在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机和它上面的进程
    
    socket = (主机ip地址,端口号)
    

    udp协议

    1.udp只在ip数据报服务之上增加了很少功能,即复用分用和差错检测功能
    
    2.udp的主要特点
      1.udp是无连接的,减少开销和发送数据之前的时延
      2.udp使用最大努力交付,即不保证可靠交付
      3.udp是面向报文的,适合一次性传输少量数据的网络应用
      4.udp无拥塞控制,适合很多实时应用
      5.udp首部开销小,8B,tcp20B
    

    udp首部格式

    udp校验


    tcp协议

    1.tcp面向连接的传输层协议
    2.每一条tcp连接只能有2个端点,每一条tcp连接只能是点对点的
    3.tcp提供可靠交付的服务,无差错,不丢失,不重复,按序到达,可靠有序,不丢不重
    4.tcp提供全双工通信
      1.发送缓存,准备发送的数据&已发送但尚未收到确认的数据
      2.接收缓存,按序达到但尚未被接受应用程序读取的数据&不按序到达的数据
    5.tcp面向字节流,tcp把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
    

    tcp报文段首部格式


    tcp连接管理

    1.tcp连接传输三个阶段
    
    连接建立 - 数据传输 - 连接释放
    
    2.tcp连接的建立采用客户服务器方式,主动发起连接建立的应用进程叫做客户,而被动等待建立的应用进程叫服务器
    

    SYN洪泛攻击

    tcp的连接释放

    tcp的可靠传输

    1.网络层,提供最大努力交付,不可靠传输
    2.使用tcp实现可靠传输
    
    3.保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的
    
    4.tcp实现可靠传输的机制
        1.校验
        2.序号
        3.确认
        4.重传
    

    序号

    确认

    重传


    tcp拥塞控制

    1.出现拥塞的条件
      对资源需求的总和>可用资源
      
    2.网络许多资源同时呈供应不足 -> 网络性能变坏 -> 网络吞吐量将随输入负荷增大而下降
    
    3.拥塞控制
      1.防止过多的数据注入到网络中。全局性
    

    拥塞控制四种算法

    1.慢开始
    2.要色避免
    3.快重传
    4.快恢复
    
    假定:
      1.数据单方向传送,而另一个方向只传送确认
      2.接收方总是有足够大的缓存空间,因而发送窗口的大小取决于拥塞程度
      发送窗口=Min(接收窗口rwnd,拥塞窗口cwnd)
      
    接收窗口:接收方根据缓存设置的值,并告知给发送方,反映接收方容量
    
    拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量
    

    慢开始和拥塞避免

    快重传快恢复

  • 相关阅读:
    Android笔记之AsyncTask
    Android笔记之使用Glide加载网络图片、下载图片
    Android笔记之OnLongClickListener
    Android笔记之ViewModel的使用示例
    分享两款好玩的单机游戏^_^
    Android笔记之Retrofit与RxJava的组合
    15张扑克,让观众心选一张,然后分成3组,每组5张。通过询问观众心选的牌是否在于某组中,最后把选中的牌找出来。
    使用Retrofit发送POST请求提交JSON数据
    Android笔记之引用aar
    不可变类
  • 原文地址:https://www.cnblogs.com/pluslius/p/11778343.html
Copyright © 2011-2022 走看看