运输层3——传输控制协议TCP概述
写在前面:本文章是针对《计算机网络第七版》的学习笔记
1. TCP最主要的特点
TCP是面向连接的运输层协议。也就是说TCP在使用之前,必须先建立TCP连接。
每一个TCP连接中只能有两个端点,也就是说TCP是点对点的通信。
TCP提供可靠交付的服务,无差错,不丢失,不重复,按序到达。
TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存储双向通信的数据。
面向字节流。TCP中的“流”是指流入到进程或从进程中流出的字节序列。
面向字节流:虽然应用程序和TCP的交互是一次一个数据块(大小不等),但是TCP把应用程序交下来的数据只看出一连串的无结构字节流。TCP不知道字节流的具体含义,也不保证接收方应用程序所收到的数据块和发送方应用程序所发出的数据块之间的大小关系。但是接收方应用程序收到的字节流必须与发送方发送的字节流完全一致。如下图所示:

上图所示只是一个虚连接,并不是正在的物理连接。实际上,TCP报文段要先发送到IP层,加上IP首部后,再传送带数据链路层,再加上数据链路层的首部和尾部后,才离开主机发送到物理链路。
2. TCP的连接
TCP的端点称为套接字(socket)或者插口。可以表示为:
套接字 = (IP地址:端口号)
每一条TCP连接唯一地被通信两端的两个端点所确定。即:
TCP连接 ::= {socket1, socket2} = {(IP1:port1), (IP2:port2)}
ps:同一个IP地址可以用很多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。
3. socket在不同场景中的含义
允许应用程序访问连网协议的应用编程接口API,即运输层和应用层之间的一种接口,称为socket API。
在socket API 中使用的函数名也叫做socket。
调用socket函数的端点也称为socket。
调用socket函数时,其返回值称为socket描述符,也可以简称为socket。
在操作系统内核中的连网协议的Berkeley实现,称为socket实现。
运输层3——传输控制协议TCP概述的更多相关文章
- 传输控制协议TCP
TCP主要特点: (1)面向连接 (2)只能是点到点 (3)可靠的传输协议 (4)全双工通信,各自各自的读写缓冲区,应用层吧数据交给发送缓冲区,tcp合适就发送了,接受的时候tcp写入接受缓冲区,应用 ...
- 传输层协议TCP和UDP
本文力图简洁,让读者对TCP和UDP有个初步的认知.闲话少说,现在开始吧.TCP和UDP都是传输层的协议.TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送.UDP不建立连接而直接发送,对未送 ...
- TCP 传输控制协议
开头先说几个协议: IP:网际协议 TCP:传输控制协议 Http:超文本传输协议 AMQP:高级消息队列协议 一:TCP是什么? TCP(Transmission Control Protocol ...
- TCP/IP 笔记 - 传输控制协议
与UDP不同,TCP提供面向连接的.可靠的.基于字节流的传输层协议,且提供差错纠正. TCP传输的概念 对与分组丢失和比特差错的处理方法,最直接的方法是重发分组,直到它被正确接收. 这需要一种方法来判 ...
- TCP传输控制协议
TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ...
- 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点
上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...
- TCP/IP中的传输层协议TCP、UDP
TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...
- 浅谈传输层协议TCP和UDP
在当今因特网的层次结构中,传输层的协议主要有两种,其一为Transmission Control Protocol,即TCP:其二为User Datagram Protocol,即UDP. 1.TCP ...
- 传输控制层协议TCP概述---抄书
1.TCP的主要特点 TCP是TCP/IP体系中非常复杂的一个协议.下面介绍TCP的最主要的特点. (1)TCP是面向连接的运输层协议.也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接.在 ...
随机推荐
- 图解 perspective && perspective-origin && transform3d && transform-origin
perspective && perspective-origin perspective是物体相对于画布的视距距离 perspective-origin是物体在画布位置的中心视点 t ...
- 00点睛Spring4.1-环境搭建
转载:https://www.iteye.com/blog/wiselyman-2210250 0.1 前置条件 Spring 4.1提倡基于Java Config和注解的配置,所以本教程通篇不会采用 ...
- 安装 KVM
安装 KVM 需要的包 sudo apt-get install -y qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan ...
- PHP与Memcached服务器交互的分布式实现源码分析
转自: http://blog.csdn.net/hguisu/article/details/7353595 前段时间,因为一个项目的关系,研究了php通过调用memcache和memcached ...
- [转帖]TPC-C解析系列03_TPC-C基准测试之SQL优化
TPC-C解析系列03_TPC-C基准测试之SQL优化 http://www.itpub.net/2019/10/08/3330/ TPC-C是一个非常严苛的基准测试模型,考验的是一个完备的关系数据库 ...
- Python31之类和对象1(三大特征:多封继——多疯子)
一.对象: Python即是面向对象的编程也是面向过程的编程语言,其内部可谓是无处不对象,我们所熟知的列表,字符串等工厂函数本质上都是对象.对象其实是对属性和方法的封装. 属性是对象的静态特征 方法是 ...
- WUSTOJ 1311: 开心的金明(Java)动态规划-01背包
题目链接:
- vim常用命令的使用
中文博客:https://www.cnblogs.com/lijia0511/p/5644566.html 英文原文:http://yannesposito.com/Scratch/en/blog/L ...
- 处理ajax数据;数据渲染(细节)
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通 ...
- ActiveMQ处理Message(String -javabean)
一.ActiveMq想要实现必备的六要素(基于jms) //链接工厂.用于创建链接 private ConnectionFactory factory; //用于访问Mq的链接,由链接工厂创建 pri ...