zoukankan      html  css  js  c++  java
  • [na]tcp&udp层各协议小结

    TCP和UDP

    传输层功能:
        可靠性:序列号、确认号&flag位
        有效性:win滑动窗口
    
    这篇目录索引:
        Tcp可靠性
        Tcp流控
        Tcp拥塞控制
        Tcp运输连接管理
    

    TCP的可靠性和流控

    为何需要可靠传输?

    一个网页可能很大,一个数据包传不过来,就需要分段传输。

    网络可能拥塞,某段可能丢失。那必须有人监管,tcp就能发现是否丢包。如果丢了一段,所有包就必须重传。

    可靠性:Tcp传输数据前,先建立会话,且维持回话,直到数据传输完成。实现可靠传输。

    考虑2个问题: 1,数据包为何最大65535个字节?  2,何为分片?

    TCP的流控

    如果web服务器发的很快,客户pc接收不过来,客户端就告诉服务器慢点发。

    总结:

      TCP发的数据太大,需要分段传输。如FTP,SMTP,QQ传文件。

      UDP一个数据包就能完成数据通信。不需要分段,不需要建立会话,不需要流控。不可靠传输。如DNS,QQ聊天信息。例如: 屏幕广播,多播,广播。

    TCP会话(查木马+状态)

    netstat –n  #显tcp会话连接状态
    netstat –nb #显示进程名

    端口号-传输层和应用层之间的关系

    共享文件夹: tcp+445
    http:       https
    smtp:      tcp25
    pop3:       tcp110
    telnet:    tcp23
    ftp:       tcp21
    sqlserver: tcp1433
    dns:       udp53
    RDP:       tcp3389
    

    查看windows常见服务

    netstat –a  #查看所有会话
    netstat –an #端口显示域名解析
    

    文件共享(内置)

    RDP协议

    安装dns、web服务

    启动服务,才会侦听端口。

    邮件服务的安装:

    新建域

    客户端配置:

    测试收发:

    网站和smtp都可以改默认端口

    需要重启服务

    客户端修改:

    修改远程桌面端口

    Mstsc

    在windows网卡上只开必要的端口:

    2003用tcp/ip筛选控制端口

    远程桌面写回环地址127.0.0.1不过tcpip筛选,可通

    网络层和传输层区别

    UDP

    UDP是无连接的,即发送数据之前不需要建立连接
    Udp使用最大努力交付,即不保证可靠传输。同是也不需要流量控制。
    Udp是面向报文的。Udp没有拥塞控制,很适合多谜题通信的要求。
    Udp支持一对一,一对多,多对一、多对多的交互通信。Tcp只支持一对一。
    Udp首部开销小,只有8个字节.

    ,长度:udp首部+数据

    ,校验和

    伪首部是用以来计算校验和的。伪首部byte+8byte udp=20个字节。

    伪首部用到了网络层的一些东西。

    TCP

    前言:网络可能拥塞,不稳定等,如何让文件可靠的、一字不落的传给对端。需要一个可靠的协议。

    TCP提供可靠的交付的服务
    TCP提供全双工通信
    面向字节流

    TCP实现可靠传输

    停止等待协议 VS 超时重传机制

    总结:只要你没告诉我收到了,我就要重传。

    特点:信道利用率太低。

    信道利用率

    RTT值。

    提高效率

    流量控制

    收到确认后才能清除发送缓存中的数据。

    累积确认:

    如图,把3号数据包丢了。那B即使收到4号也没用,A收到了2的确认,2以后的所有数据将重传。

    实现流量控制

    避免网络拥塞

    TCP数据包格式

    选项:有些tcp包不是传数据的,是用来商量一些事。

    序列号:本数据段的第一个字节,是所有数据的第几个字节。

    确认号:

    确认号=发送方序列号+1

    数据偏移:告知数据包,第多少字节开始就是tcp数据部分了。

    1111 四个bit。一个1代表4byte。最长15*4=60byte

    Xp是索取者

    标志位:

    SYN ACL FIN

    URG:优先传送。譬如给对端传文件,想中断,crtl+c,这个命令需要紧急传送过去。

    PSH:传到对方接受缓存时,需要优先交给app程序处理。

    RSTtcp连接收到了严重破坏,必须重新建立才能继续传输数据。

    SYN攻击工具:syn攻击器:伪造源ip,给对端发syn包。让对端和这些伪造的ip建立连接,让对端处于syn_wait状态。

    Land:发syn包(源ip和目的ip都是对端ip地址让对端自己和自己玩。)。将land放在windows目录下。然后:(可能会有病毒,vm里做)

    文件共享。

    窗口的作用

    告诉对端两件事,1我的接收缓存 2,我支持的最大mss

    校验和:

    TCP首部+数据部分。

    紧急指针:

    指明了紧急数据的尾部,如50,代表1-50部分需要紧急处理。

    选项:

    通知对方我能够接受最大的MSS

    我是否支持SACK 选择性确认。

        

    详解滑动窗口

    首次传送数据需要设定自己的发送窗口大小。以字节为单位。

    A如果为20,那窗口中的数据就可以往外发。到了20,还没收到确认,就不能发了。

    在未收到确认前,窗口中的数据不允许清除。

    发送的数据快逐渐增大。

  • 相关阅读:
    Get-CrmSetting返回Unable to connect to the remote server的解决办法
    Dynamics 365中的常用Associate和Disassociate消息汇总
    Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
    Dynamics Customer Engagement V9版本配置面向Internet的部署时候下一步按钮不可点击的解决办法
    Dynamics 365检查工作流、SDK插件步骤是否选中运行成功后自动删除系统作业记录
    注意,更改团队所属业务部门用Update消息无效!
    Dynamics 365的审核日志分区删除超时报错怎么办?
    Dynamics 365使用Execute Multiple Request删除系统作业实体记录
    Dynamics 365的系统作业实体记录增长太快怎么回事?
    Dynamics CRM日期字段查询使用时分秒的方法
  • 原文地址:https://www.cnblogs.com/iiiiher/p/5294416.html
Copyright © 2011-2022 走看看