TCP和UDP

传输层功能

网络安全

Tcp可靠性

Tcp流控

Tcp拥塞控制

Tcp运输连接管理

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

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

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

 

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

总结:

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

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

屏幕广播,多播,广播。

 

查看建立会话

Netstat –n

Netstat –nb

传输层和应用层之间的关系

共享文件夹:tcp+445

http https

smtp:tcp25

pop3:tcp110

telnet :tcp23

ftp:tcp+21

sqlserver:tcp1433

dns:udp+53

RDP:tcp+3389

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提供全双工通信

面向字节流

  1. 实现可靠传输

停止等待协议

超时重传机制

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

特点:信道利用率太低。

RTT值。

提高效率

流量控制

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

累积确认:

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

  1. 实现流量控制
  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,还没收到确认,就不能发了。

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

发送的数据快逐渐增大。

TCP&UDP协议小结的更多相关文章

  1. TODO:Golang语言TCP/UDP协议重用地址端口

    TODO:Golang语言TCP/UDP协议重用地址端口 这是一个简单的包来解决重用地址的问题. go net包(据我所知)不允许设置套接字选项. 这在尝试进行TCP NAT时尤其成问题,其需要在同一 ...

  2. QQ--基于TCP/UDP协议的通讯原理

    QQ是一个基于TCP/UDP协议的通讯软件  发送消息的时候是UDP打洞,登陆的时候使用HTTP~因为登陆服务器其实就是一个HTTP服 务器,只不过不是常用的那些,那个服务器是腾讯自行开发的!   一 ...

  3. java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端

    java 通过TCP\UDP 协议实现多人聊天,点对点,文件传送-----分服务器端和客户端 启动界面如下图: 首先启动服务器: 客户端登陆,登陆成功后为: 默认发送是全部用户,是多人发送. 当在边列 ...

  4. 网络编程—网络基础概览、socket,TCP/UDP协议

    网络基础概览 socket概览 socket模块—TCP/UDP的实现 TCP/UDP总结 网络基础概览 osi七层协议各层主要的协议 # 物理层传输电信号1010101010 # 数据链路层,以太网 ...

  5. TCP/UDP协议简要梳理

    TCP/UDP协议简要梳理 TCP TCP,Transmission Control Protocol,传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议.在因特网协议族中,TCP所在的 ...

  6. Shell 脚本实现TCP/UDP协议通讯

    Shell 脚本实现TCP/UDP协议通讯 http://www.cnblogs.com/occult/archive/2012/12/25/2832183.html  

  7. TCP/UDP协议(二)

    面试问题:Tcp/Udp协议是什么,各有什么异同点,各自的使用场景? Tcp协议(传输控制协议) tcp是面向连接的协议,在收发数据之前,必须与对方建立可靠的连接: 三次握手:简单形象通俗描述: 主机 ...

  8. TCP UDP 协议的区别和联系

    TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接.一个TCP连接必须要经过三次“对话”才能建立起 ...

  9. NetworkComms框架介绍 完美支持TCP/UDP协议

    NetworkComms网络通信框架序言 英文文章地址 :http://www.networkcomms.net/tcp-udp-connections/ NetworkComs.Net无缝的支持TC ...

随机推荐

  1. 【原/转】UITableview性能优化总结

    UITableView作为ios中使用最频繁的控件之一,其性能优化也是常常要面对的,尤其是当数据量偏大并且设备性能不足时.本文旨在总结tableview的几个性能优化tips,并且随着认识的深入,本文 ...

  2. iOS-RegexKitLite导入错误

    RegexKitLite是什么? RegexKitLite是一个非常方便的处理正则表达式的第三方类库. 本身只有一个RegexKitLite.h和RegexKitLite.m 导入RegexKitLi ...

  3. Asp.net MVC 4新项目中创建area的后续操作

    Asp.net MVC 4新项目中创建area后,往往HomeController与area的HomeController路由发生混淆,需要手工设置一些地方避免mvc无法识别默认路由的状况. 无废话具 ...

  4. Xcode模拟器和真机生成的日志查看(转载)

    在进行实际代码开发的过程中,我们会生成一些plist文件,但是如何在调试过程中查看这些plist文件是否被成功生成以及生成的内容是否正确? 如果查看模拟器生成的日志和真机生成的日志到底如何查看? DE ...

  5. 使用culr

    使用curl在采集有语言要求的网站时,首先需要发送带有语言设置的请求,再发送你要的请求如: 注:vget(); 这里没提供: $url='http://www.hotels.com/?locale=e ...

  6. olacle数据库员工表的创建,及插入数据,添加约束,删除列,查询数据的sql语句

    ---删除原有的员工表drop TABLE employee;---创建员工表CREATE TABLE employee       (       empno NUMBER(4) NOT NULL, ...

  7. 烂泥:KVM、kickstart与FTP集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上一篇文章中,我们介绍了有关KVM.kickstart与NFS集成的相关内容.在这节我们将继续介绍FTP与KVM.kickstart集成的相关操作. ...

  8. 烂泥:ubuntu安装vmtools

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近由于工作需要,需要使用桌面版的linux系统,所以就选择了ubuntu.同时为了方便使用,就在VM中安装ubuntu. 但是为了文件以及操作的方便就 ...

  9. 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)

    我在Windows7系统安装了虚拟机,通过虚拟机安装了Ubuntu13.04,我设置的主机与虚拟机的连接方式是桥接,安装好后,发现虚拟机ping不通主机,但是主机可以ping通虚拟机. 我的操作是:关 ...

  10. 使用LVS实现负载平衡之Windows Server 2008配置

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.承载于 II ...