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程序处理。

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

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,还没收到确认,就不能发了。

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

发送的数据快逐渐增大。

[na]tcp&udp层各协议小结的更多相关文章

  1. 涨知识-VI 基于TCP/UDP的应用层协议

    基于TCP/UDP的应用层协议: 基于TCP: Telnet(Teletype over the Network, 网络电传),通过一个终端(terminal)登陆到网络 FTP(File Trans ...

  2. 什么是TCP, UDP, HTTP, HTTPS协议?

    TCP 传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC793定义. TCP主要特点: 1. 面向连接: (1)应用程序在使用TCP协议之前,必须先建立TCP连接. ...

  3. [na]tcp&udp扫描原理(nmap常用10条命令)

    nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...

  4. TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景

    一.OSI 模型 OSI 模型主要作为一个通用模型来做理论分析,而TCP/IP 协议模型是互联网的实际通讯协议,两者一般做映射分析,以下不做严格区分和声明(好吧,比较懒): OSI 整个模型层次大致可 ...

  5. TCP模型及其重点协议总结

    概述 TCP/IP协议族,作为最早的协议模型(后来OSI七层也是在该基础上细分而来),每层都有一些重点的协议,面试时也会被询问,快要找工作,得做一些总结了 [1]TCP4层协议模型概述 [2]各层重点 ...

  6. TCP/UDP端口列表

    http://zh.wikipedia.org/wiki/TCP/UDP%E7%AB%AF%E5%8F%A3%E5%88%97%E8%A1%A8 TCP/UDP端口列表     本条目可通过翻译外语维 ...

  7. TCP/UDP 常用端口列表

    计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...

  8. TCP/UDP端口列表(WIKIpedia)

    计算机之间依照互联网传输层TCP/IP协议不同的协议通信,都有不同的对应端口.所以,利用短信(datagram)的UDP,所采用的端口号码不一定和采用TCP的端口号码一样.以下为两种通信协议的端口列表 ...

  9. 传输层中的协议 TCP & UDP

    面向连接的TCP协议 “面向连接”就是在正式通信前必须要与对方建立起连接.比如你给别人打电话,必须等线路接通了.对方拿起话筒才能相互通话.TCP(Transmission Control Protoc ...

随机推荐

  1. jqPlot图表插件学习之轴说明和label属性

    一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...

  2. python模块之lib2to3(py2转py3自动化工具)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之lib2to3(py2转py3自动化工具) #http://tieba.baidu.com ...

  3. 纯C++去雾算法

    去雾算法 前言:经过不断的改进研究,该算法最终稳定,高效的问世了. 经过研究使该算法适应大雾环境,对该算法的内存优化,可以实时的高效的执行. 一.实时视频: watermark/2/text/aHR0 ...

  4. js实现放大缩小页面

    <script type="text/JavaScript"> var size = 1.0; function zoomout() { size = size + 0 ...

  5. kafaka可视化工具

    许多中间件系统都提供了良好的可视化系统.MySQL有workbench,navcat,php版的mysqladmin等可视化程序.Redis.MongoDB也有开源的可视化程序.只要官方提供了探索数据 ...

  6. 使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)

    原文: http://njm.iteye.com/blog/795881 --使用 自连接.for xml path('')和stuff合并显示多行数据到一行中 --注 --1.计算列可以不用包含在聚 ...

  7. 对simhash算法的一些思考

    http://2588084.blog.51cto.com/2578084/558873

  8. linux中的signal机制(转)

    信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念.Linux对信号机制的大致实现方法.如何使用信号,以及有关信号的几个系统调用. 信号机制是进程之间相互传递消息的一种方法,信号全 ...

  9. ubuntu(14.04) sphinx安装

    http://portal.digitser.cn/article-179-1.html

  10. mysql数据库优化 pt-query-digest使用

    mysql数据库优化 pt-query-digest使用 一.pt-query-digest工具简介 pt-query-digest是用于分析 mysql慢查询的一个工具,它可以分析binlog.Ge ...