网络教程(12) TCP协议

IP协议的限制

IP协议需要 datalink帧来包装它

Ethernet或者PPP

一般都有1500byte字节或者大小的限制

可能会出现的问题

Packet loss – retransmit

Reordering

Multiple Conversitions(假设同时传输连个文件 我们怎么知道哪个包是属于哪个文件的

Flow Control

TCP就是解决上面问题的

-Byte Stream Service

-Connection oriented

(在发数据之前hostA需要和B建立可靠连接,就像打电话

-reliable

Byte Stream Service的意思是一旦链接建立了,每一边都可以发送字节流

而不用考虑它们怎么分成独立的package

A与B建立连接,不用关心内部细节

TCP会自动分成 segment 然后每个segment再分成数据包

Ether Type:0800 (IP协议

IP的Protocol 为6的时候表示传输TCP

双向的传输

原文地址:https://www.cnblogs.com/eret9616/p/10226373.html

时间: 2024-11-02 17:46:49

网络教程(12) TCP协议的相关文章

C#网络编程之---TCP协议的同步通信(二)

上一篇学习日记C#网络编程之--TCP协议(一)中以服务端接受客户端的请求连接结尾既然服务端已经与客户端建立了连接,那么沟通通道已经打通,载满数据的小火车就可以彼此传送和接收了.现在让我们来看看数据的传送与接收 先把服务端与客户端的连接代码敲出来 服务端 IPAddress ip = new IPAddress(new byte[] { 127, 1, 1, 1 }); TcpListener server = new TcpListener(ip, 8005); server.Start();

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

Socket编程 目前较为流行的网络编程模型是客户机/服务器通信模式 客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求.如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1.A2和B2提供服务. Socket概述 ①   所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过“套接字”向网络发出请求或者应答网络请求. ②   Socket是连接运行在网络上的两个程序间的双向通信的端点. ③  

网络编程UDP/TCP协议

一.网络编程三要素 IP:网络中设备的标识,不易记忆,可用主机名 端口号:用于标识进程的逻辑地址,不同进程的标识 传输协议:通讯的规则常见协议:TCP,UDP UDP 把数据打成一个数据包 , 不需要建立连接 数据包的大小有限制不能超过64k 因为无连接,所以属于不可靠协议(可能丢失数据) 因为无连接 ,所以效率高 TCP 需要建立连接,形成连接通道 数据可以使用连接通道直接进行传输,无大小限制 因为有链接,所以属于可靠协议 因为有链接,所以效率低 二.IP以及端口号 1.InetAddress

C#网络编程之--TCP协议(一)

TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电话,那么A可以说话给B听,同样B也可以给A说话,不可能只允许一个人说话. TCP 是点对点的 点对点,这个看了上面的举例相比大家都知道了,还要说一点的是,如果在A和B打电话过程中,B又来了一个紧急电话,那么B就要将与A的通话进行通话保持,所以不管怎么讲同一个连接只能是点对点的,不能一对多. TCP

网络基础:TCP协议、UDP协议、均属于传输层协议;TCP和UDP协议有何不同?

传输层 传输层的主要工作是定义端口,标识应用程序身份,并将数据包交给对应的应用程序实现端口到端口的通信,并且传输层引入了TCP/UDP协议. 1. 如果有大量数据包.数据包大?时间很长,网络中断,怎么控制重新传输?怎么确保数据包正确完整---传输层 传输层封装数据包,通过定义的 TCP.UDP 协议实现按序一个一个发送,保证数据完整正确性: 2. QQ发消息,你必须使用QQ接受消息,才可以正常通信:但是电脑中不是只运行了QQ,还有其他程序,怎么确定由谁来处理消息 传输层定义端口的概念-- HTT

Java 网络编程 之 TCP协议

TCP协议 (服务器端程先启动,等待客户端连接) TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据 保证传输数据的全性安,文件数据不易丢失 在JDK中提供了两个类用于实现TCP程序,一个是ServerSocket类,用于表示服务器端,一个是Socket类,用于表示客户端. 首先创建代表服务器端的ServerSocket对象,并等待客户端的连接, 然后创建代表客户端的Socket对象向服务器端发出连接请求,服务器端响应请求,客户端再次向服务器端发送确认信

C# socket网络编程 基于TCP协议

socket 服务器端: 1.创建socket Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//三个参数分别为枚举类型(网络),Socket类型,协议 2.绑定ip和端口号 IPAddress ipAddress = new IPAddress(new byte[] {192,168,119,1}); EndPoint point =new IPEnd

网络基础之--TCP协议

传输控制协议 TCP 概述 TCP 是面向连接的运输层协议. 每一条 TCP 连接只能有两个端点(endpoint),每一条 TCP 连接只能是点对点的(一对一). TCP 提供可靠交付的服务. TCP 提供全双工通信. 面向字节流. TCP 报文段的首部格式 源端口和目的端口字段--各占 2 字节.端口是运输层与应用层的服务接口.运输层的复用和分用功能都要通过端口才能实现. 序号字段--占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数

java 26 - 8 网络编程之 TCP协议的练习

TCP练习: 1.客户端键盘录入,服务器输出文本文件 客户端代码: 1 public class ClientDemo { 2 public static void main(String[] args) throws IOException { 3 4 // 创建socket对象 5 Socket s = new Socket("172.19.12.233", 10010); 6 7 // 创建键盘输入流,用转换流包装成字符流 8 BufferedReader br = new Bu