SA Blog --系统管理员的博客生涯

书写自己的系统管理博客生涯
posts(330) comments(254) trackbacks(0)
  • IT博客
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(395)

  • *UNIX系统(148)
  • Cloud(3)
  • Moive
  • Music(1)
  • OpenStack(7)
  • openstack
  • Wiki(1)
  • Windows系统(32)
  • 其他(33)
  • 娱乐
  • 存储相关(22)
  • 存储网络(10)
  • 常用工具下载(25)
  • 数据库应用技术(53)
  • 网络技术(41)
  • 英语
  • 虚拟化(19)

随笔档案(330)

  • 2020年9月 (1)
  • 2020年8月 (1)
  • 2020年7月 (8)
  • 2020年4月 (1)
  • 2020年2月 (1)
  • 2020年1月 (1)
  • 2019年9月 (2)
  • 2019年4月 (1)
  • 2016年1月 (1)
  • 2015年12月 (1)
  • 2015年7月 (4)
  • 2015年5月 (2)
  • 2014年3月 (2)
  • 2014年1月 (1)
  • 2013年12月 (1)
  • 2013年3月 (5)
  • 2013年2月 (4)
  • 2012年12月 (1)
  • 2012年11月 (2)
  • 2012年9月 (2)
  • 2012年8月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年1月 (1)
  • 2011年12月 (2)
  • 2011年10月 (1)
  • 2011年9月 (3)
  • 2011年8月 (1)
  • 2011年7月 (5)
  • 2011年6月 (3)
  • 2011年5月 (5)
  • 2011年4月 (2)
  • 2011年3月 (2)
  • 2011年2月 (1)
  • 2011年1月 (5)
  • 2010年12月 (1)
  • 2010年11月 (4)
  • 2010年9月 (13)
  • 2010年8月 (4)
  • 2010年7月 (5)
  • 2010年6月 (5)
  • 2010年5月 (13)
  • 2010年4月 (10)
  • 2010年3月 (5)
  • 2010年2月 (1)
  • 2010年1月 (9)
  • 2009年12月 (5)
  • 2009年11月 (5)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (6)
  • 2009年6月 (3)
  • 2009年5月 (2)
  • 2009年4月 (1)
  • 2009年3月 (2)
  • 2009年2月 (3)
  • 2008年12月 (3)
  • 2008年11月 (1)
  • 2008年10月 (9)
  • 2008年9月 (5)
  • 2008年8月 (3)
  • 2008年7月 (1)
  • 2008年6月 (1)
  • 2008年5月 (2)
  • 2008年4月 (1)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年12月 (5)
  • 2007年11月 (1)
  • 2007年10月 (6)
  • 2007年9月 (4)
  • 2007年8月 (4)
  • 2007年7月 (34)
  • 2007年6月 (1)
  • 2007年4月 (2)
  • 2007年3月 (1)
  • 2007年2月 (1)
  • 2006年11月 (1)
  • 2006年9月 (4)
  • 2006年8月 (4)
  • 2006年7月 (1)
  • 2006年6月 (10)
  • 2006年5月 (3)
  • 2006年4月 (14)
  • 2006年2月 (6)
  • 2006年1月 (6)
  • 2005年12月 (12)

收藏夹(5)

  • Other(5)

IT技术

  • MSDN 库(中文)
  • 欢迎使用 MSDN 库(中文),MSDN 库为使用 Microsoft® 工具、产品、技术和服务的开发人员提供必不可少的信息资源。MSDN 库包含操作方法和参考文档、示例代码、技术文章和其他内容。请浏览目录或使用搜索功能来查找所需内容。

健康

  • 体检咨询
  • 北京体检 体检咨询
  • 足医生
  • 足医生

友情链接

  • TestLink中文论坛
  • Testlink 中文论坛
  • 备案专题
  • 备案专题
  • 微软大中华区安全博客
  • 微软大中华区安全博客

存储技术

  • doit存储
  • doit 存储,存储热门论坛
  • ITPUB
  • Oracle DBA 热门中文社区
  • TechTarget IT专家网
  • 蓝德科技

网络技术

  • ChinaUnix 中文社区
  • ChinaUnix 热门中文社区

搜索

  •  

最新评论

  • 1. re: 吐槽一下阿里系软件,就是天天的升级???
  • 评论内容较长,点击标题查看
  • --David
  • 2. re: Symantec Backup exec system recovery 2010(BESR 2010)故障汇总
  • 评论内容较长,点击标题查看
  • --112
  • 3. re: OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)
  • /home/stack/devstack/tools/worlddump.py -d /home/stack/logs
    求救这是什么问题啊。
  • --陈晓龙
  • 4. re: nokia 手机密码忘记后破解
  • nokia 2630,密码不见,恳请帮忙,谢谢
    串号:355219037959407
    lipolipo@gmail.com
  • --沈同学
  • 5. re: chroot 工具 jailkit 限制用户 活动范围 和 权限 _ 笔记
  • 是一个很好的工具嘛。感谢分享。
  • --少林功夫好

阅读排行榜

评论排行榜

View Post

tcp要点学习-基础概念

Author : Kevin Lynx

TCP是TCP/IP协议簇中传输层上的一种网络协议,它是一种面向连接的、可靠的协议。为了提供这种可靠性,
TCP实现了各种有效的机制、算法。为了从一种宏观的角度去了解这个协议,这里先大致地提一下与之相关
的概念。

1. 什么是‘面向连接的’?
引用 中的概念:
面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立
一个TCP连接。

2. 什么是‘三次握手’?
在建立TCP连接之前,两个使用TCP的应用需要交换三次网络数据。这三个数据包的来往也就是所谓的‘
三次握手’。

3. 报文段segment
我们说TCP是流式的网络协议,那是因为,应用程序可以一直往TCP写数据,无论你是逐byte,还是write
a chunk,TCP对应用传给它的数据进行缓冲,直到缓冲数据达到一定尺寸才发送。可以看出,对于应用
而言,TCP就像是stream的。但事实上,在TCP层,数据还是以块为单位的。这个块也就是所谓的报文段
segment。

4. 什么是MTU?
MTU即最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的
大数据报大小(以字节为单位)。我个人目前的理解认为,MTU是一个网络在硬件层次上所允许的最大
数据包大小,例如以太网大概是1500字节。

5. 什么是MSS?
MSS即最大报文段大小(Maximum Segment Size),它是指TCP中一个报文段上附加的用户数据的最大大小。
这里稍微说下应用层发送某个数据包时整个TCP/IP协议栈的操作过程:应用层将自己的用户数据传给TCP
层(传输层),TCP在这些数据前添加自己的协议头(简单地理解为附加一些数据),然后将数据交给
IP层(网络层),IP层附加自己的协议头,以此类推。
虽然MSS意思是最大报文段大小,但事实上它是排除了协议头的用户数据。

6. MTU and MSS ?
可以简单地给你一个这样的公示:mss = mtu - tcp_header_size - ip_header_size。
而通常,IP协议附加的协议头大小和TCP的协议头大小都是20字节,所以通常的MSS为1460字节。
注意,这里说的数字并不见得正确,因为MSS是可以被协商的。各种协议头也可能被添加附加数据,但是
他们的关系是这样的。

7. 什么是窗口大小?
找本TCP的书看下TCP数据包的包头(本文多次使用数据包、报文的概念,我这里说的都是一样的),你会
发现那个16位的窗口大小。
窗口这个域对于整个TCP协议都很重要。简单地说,窗口大小是指接收端的接收缓存的大小。上面说了,应用
在发数据的时候,TCP会缓存这些数据,稍后发送。接收数据时也一样,TCP接收数据并缓存起来,直到应用
调用recv之类的函数取数据时,TCP才将这些缓存数据清除。

TCP发送端会根据TCP接收端那个接收缓存大小决定发送多少数据(如何知道这个缓存大小?稍后给概念)。
这样,TCP接收端的接收缓存才不至于缓冲溢出。

8. 提供可靠性的方法之一:ACK确认?
这里还不敢提序号、确认号、延时ACK等乱七八糟的东西。我只能告诉你,当TCP发送某些数据给TCP接收方
时,TCP接收方会发回一个确认报文。TCP发送方收到这个确认报文后,就可以确认刚才发送的数据包成功到达。

为什么这个确认报文叫ACK确认(貌似是我临时给的概念:D)?再翻到TCP包头结构那张图,ACK是TCP包头中
的1bit标志位,如同SYN、PSH、RST之类的标志一样,这些标志都有一个专有的用途。当ACK标志位被设置为1
时,我就称其为ACK确认标志,因为ACK就是用于确认报文段的。

在上面所说的窗口大小中,我提到,发送方如何知道接收方的接收缓存大小呢?这也是通过确认报文段实现:
当接收方接收到数据后,发送ACK确认数据包给发送方,就设置包头中的窗口域。

9. 提供可靠性的方法之二:各种定时器
TCP中会设置很多计时器,这些定时器大多用于超时重传(老半天得不到回应,所以重传数据)。

10.什么是全双工?
全双工就是你可以同时在一个TCP连接上进行数据的发送和接收。这种双工特性也促使了关闭TCP连接时的四次
握手。

11.TODO : more concepts...


这里我尽量简单地介绍一些TCP中的概念,希望可以让你有概括性的了解。预计下一节我会讲讲建立TCP连接的相关细节。
除了Stevens的 ,我推荐 ,据说是另一部TCP的权威之作。


posted on 2009-07-24 17:35 David 阅读(404) 评论(0)  编辑 收藏 引用 所属分类: 网络技术

只有注册用户登录后才能发表评论。
 
Powered by:
IT博客
Copyright © David