---恢复内容开始---

坞无尘水槛清,相思迢递隔重城。

秋阴不散霜飞晚,留得枯荷听雨声。    --李商隐

上一篇中我们了解了socket编程是基于TCP或者UDP,所以我们有必要对TCP,和UDP先进行学习。本篇主要学TCP.

1.TCP属于那一层?

传输层

2.TCP的定义

TCP是 可靠的(如何可靠),  面向连接(三次握手和四次释放)  字节流(每个TCP报文都带着若干个字节) 服务;

a.先说面向连接

  (1)三次握手和四次握手(看图说清楚)

http://blog.csdn.net/fw0124/article/details/7452695

(2)连接3次,释放4次。

    为什么连接不是4次? ack和syn 一块发来了。

 为什么不是2次?防止过期syn到服务器端。两次就会建立一个不应该存在的连接

3次还有什么漏洞? syn flood,说白了,利用3次握手漏洞,故意不发送最后的ack,这样服务器会有短暂的几分钟的资源浪费,大量的请求,服务器就不能用了。

 2msl干啥的? msl最大段生存时间,防止最后的ACK,服务器没收到,所以留下这个时间可以利用tcp的超时重传机制。

b.可靠的

1.分割,我们从应用程序得到的数据会被分割成若干个合适的TCP报文,TCP报文的大小是有上限的(MSS http://support.huawei.com/ecommunity/bbs/10156527.html).

2.分割后,传到IP层加上IP头,成为IP报文,我们知道IP协议是不可靠地,不保证到达顺序,不保证不会出错,不保证不会重复,不保证一定会受到。

3.所以

TCP 可靠体现在: 1.保证报文的有序性,自行组装。 2.使用校验码就行校验。3.重复数据去掉,4,如果到达服务器段,则使用ack,规定时间没到则超时重传。

最后TCP会根据当前的网络的拥塞情况选择一定的流量控制方法。关于流量控制,此处不提了,有空再说。(这也就是TCP与UDP的区别);

c字节流

知道一点足矣,TCP是中的数据段是若干个自己就行。其实从java的socket中看到getInputStream就能感受到了。

传输层之TCP的更多相关文章

  1. 传输层协议TCP和UDP

    本文力图简洁,让读者对TCP和UDP有个初步的认知.闲话少说,现在开始吧.TCP和UDP都是传输层的协议.TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送.UDP不建立连接而直接发送,对未送 ...

  2. UNIX网络编程---传输层:TCP、UDP、SCTP(二)

    UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...

  3. 传输层:TCP 协议

    传输层:TCP 协议 一.概述 TCP 和 UDP 处在同一层——运输层,但是它们有很多的不同.TCP 是 TCP/IP 系列协议中最复杂的部分,它具有以下特点: (1) TCP 提供 可靠的 数据传 ...

  4. 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

    上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...

  5. 计算机网络 学习笔记-传输层:TCP协议简介

    概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面 ...

  6. 传输层:TCP UDP SCTP

    总图 虽然协议族被称为“TCP/IP”,但除了TCP和IP这两个主要协议外,还有许多其他成员.图2-1展示了这些协议的概况. 图2-1中同时展示了IPV4和IPV6.从右向左看该图,最右边的5个网络应 ...

  7. TCP/IP(五)传输层(TCP的三次握手和四次挥手)

    前言 这一篇我将介绍的是大家面试经常被会问到的,三次握手四次挥手的过程.以前我听到这个是什么意思呀?听的我一脸蒙逼,但是学习之后就原来就那么回事! 一.运输层概述 1.1.运输层简介 这一层的功能也挺 ...

  8. 网络通信协议八之(传输层)TCP协议详解

    传输层协议 分段是为了提高传输效率,封装是指给每个数据段添加一个编号 端到端的传输是逻辑上的端到端,并不是真正意义上的发送方某层与接收方某层之间的传输 IP协议只是保证数据报文发送到目的地,为主机之间 ...

  9. 网络传输层之TCP/UDP详解

    一.运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层. 运输层的任务就是负责主机中两个进程之间的通信,其数据传输的单 ...

随机推荐

  1. 自己在使用的English词典

    一.ESL/非母语词典 二.EFL/母语词典 1.American Heritage Dictionary 2.World Book Dictionary 3.Oxford Dictionary of ...

  2. nginx 自定义代理返回 404

    在nginx的http段,加上一面的配置 proxy_intercept_errors on;//自定义代理返回的404错误提示

  3. c语言"a<b<c"条件值的判定

    示例代码: #include <stdio.h> int main() { , b = , c = ; ; while (a<b<c) { t = a; a = b; b = ...

  4. HTML注释的一些规范

    HTMl里的一些注释符号 1.bady,head内部的注释:<!--放注释内容--> 2.css样式的注释:/*放注释的内容*/ 3.javascript注释 单行注释://放注释的内容 ...

  5. 【转】Ext JS xtype

      原文:Ext 中xtype一览 基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cyc ...

  6. 【转】oracle PLSQL常用方法汇总

    原文:http://www.cnblogs.com/luluping/archive/2010/03/10/1682885.html 在SQLPLUS下,实现中-英字符集转换alter session ...

  7. css3 标题超过长度自动省略号

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  8. linux重新增加硬盘容量

    1.先用df -h查看硬盘使用情况 2.fdisk -l查看分区情况 表示还没有挂载 3.fdisk /dev/vdb进行分区 4.mkfs.ext3 /dev/vdb进行格式化 5.mount /d ...

  9. POJ 2635 The Embarrassed Cryptographer 大数模

    题目: http://poj.org/problem?id=2635 利用同余模定理大数拆分取模,但是耗时,需要转化为高进制,这样位数少,循环少,这里转化为1000进制的,如果转化为10000进制,需 ...

  10. eclipse开发android程序常见问题解决办法

    1:R.java不自动更新或不见,gen文件夹里没生成文件. 解决办法: 这个一般是xml文件中有错误,如有英文大写,属性值错误等,解决了就会好. 如果错都排除了还没有生成或更新,那么可以点击proj ...