目录

谈谈传输层:

UDP协议

首部说明

回显服务器代码案例 echoServer

TCP协议

TCP和UDP区别


UDP和TCP都是传输层的重要协议,也是学习网络的必备内容了,接下来这篇我们就详细分析一下这两者的内容,以及这两者的区别。

谈谈传输层:

传输层是TCP/IP协议五层模型中的第四层。它提供了应用程序间的通信,它负责数据能够从发送端传输到接收端。

其功能包括:一、格式化信息流;二、提供可靠传输

UDP协议

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议

  • UDP 是无连接的,知道对方的IP和端口号直接进行传输就行,不需要建立连接

  • UDP 不可靠,没有任何可靠机制,即便发送失败也不会返回任何错误信息

  • UDP 面向数据报,发多少就收多少,原样发送,交给UDP的报文,UDP不会拆分或合并

  • UDP 没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。

  • UDP 支持一对一、一对多、多对一和多对多的交互通信

  • 缓冲区:只有接收缓冲区,没有发送缓冲区,接收缓冲区满了,多的直接丢弃

首部说明

首部由四个字段构成,每个字段都是 2byte

  • 源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
  • 目的端口:目的端口号,在终点交付报文的时候需要用到。
  • 长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部),由于长度只有16位,所有UDP一次能发送的数据最大就是 64K
  • 校验和:检测UDP数据报在传输中是否有错,有错则丢弃。

回显服务器代码案例 echoServer

    UdpServer

package echo;import java.net.*;
import java.util.Arrays;
import java.io.IOException;public class UdpServer {private static int PORT = 2222;private DatagramSocket socket;public UdpServer() throws SocketException {socket = new DatagramSocket(PORT);}public void start() throws IOException {byte[] bytes = new byte[2048];DatagramPacket receivePacket = new DatagramPacket(bytes, bytes.length);socket.receive(receivePacket);System.out.printf("ClientAddress: %s\nClientPort: %d\n",receivePacket.getAddress(),receivePacket.getPort());System.out.println("ClientData:"+ new String(receivePacket.getData(),"utf-8"));DatagramPacket sendPacket = process(receivePacket);socket.send(sendPacket);}public DatagramPacket process(DatagramPacket packet){DatagramPacket packet1 = new DatagramPacket(packet.getData(),packet.getLength(),packet.getSocketAddress());return packet1;}public static void main(String[] args) throws IOException {UdpServer server = new UdpServer();server.start();}
}

 UdpClient

package echo;import java.net.*;
import java.io.IOException;
import java.util.Scanner;public class UdpClient {public void start() throws IOException {DatagramSocket socket = new DatagramSocket();byte[] bytes = new byte[2048];System.out.println("请输入你想发送给服务器的信息:");Scanner scanner = new Scanner(System.in);String str  =scanner.nextLine();bytes = str.getBytes();DatagramPacket sendPacket = new DatagramPacket(bytes,bytes.length,new InetSocketAddress("localhost",2222));socket.send(sendPacket);DatagramPacket receivePacket = new DatagramPacket(new byte[2048],2048);socket.receive(receivePacket);System.out.println(new String(receivePacket.getData(),"utf-8"));}public static void main(String[] args) throws IOException {UdpClient client = new UdpClient();client.start();}
}

TCP协议

TCP :有连接、可靠传输、面向字节流、全双工

保证可靠性:确认应答、超时重传、连接管理(三次挥手 四次握手)

提高效率:滑动窗口、流量控制、拥塞控制

TCP和UDP区别

计算机网络基本概念<三>UDP和TCP协议详解相关推荐

  1. 计算机网络 | 传输层 :UDP与TCP协议详解

    传输层 UDP UDP的协议格式 UDP的特点 基于UDP的应用层知名协议 UDP如何实现可靠传输 TCP TCP的协议格式 TCP的特点 连接管理机制 三次握手 四次挥手 保活机制 问题补充 可靠传 ...

  2. UDP与TCP协议详解

    目录 前言 再谈端口号 端口号划分规范 常见的知名端口号 UDP协议 UDP协议段格式 UDP协议的特点 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 TC ...

  3. 网络协议分析 | 传输层 :史上最全UDP、TCP协议详解,一篇通~

    文章目录 UDP 概念 格式 UDP如何实现可靠传输 基于UDP的应用层知名协议 TCP 概念 格式 保证TCP可靠性的八种机制 确认应答.延时应答与捎带应答 超时重传 滑动窗口 滑动窗口协议 后退n ...

  4. Linux网络编程-UDP和TCP协议详解

    1|0一. 引言 网络协议是每个程序员都要掌握的基础知识,干啥都离不开网络,就算在家里新买了个路由器不是吗,同事连不上网,你的女朋友手机没有网看剧了正看到高潮部分,到那时候你打开百度......那嫌弃 ...

  5. Linux网络-UDP/TCP协议详解

    Linux网络-UDP/TCP协议详解 零.前言 一.UDP协议 二.TCP协议 1.应答机制 2.序号机制 3.超时重传机制 4.连接管理机制 三次握手 四次挥手 5.理解CLOSE_WAIT状态 ...

  6. IP协议和TCP协议详解

    IP协议和TCP协议详解 IP协议 IP协议的特点 IPV4头部信息 IP分片 重定向 IPV6头部结构 TCP协议 TCP协议的特点 TCP头部结构 TCP连接的建立与关闭 异常终止连接 异常终止连 ...

  7. 【工控老马】西门子PLC Siemens PLC TCP协议详解

    Siemens PLC TCP 协议详解 说明:蓝色文字表示已经破解部分,[红色文字] 表示对破解部分数字的说明,黑色文字表示对破解部分的进一步说明,黑色斜体加粗文字表示未破解部分,高亮文字部分表示驱 ...

  8. 计算机网络应用层(二):DNS协议详解

    DNS协议详解 前言 DNS协议概述 DNS工作原理 DNS缓存 DNS记录和报文 资源记录 DNS报文 总结 前言 DNS是计算机网络中应用层的一个协议,可能很多同学碰到过DNS被劫持的情况,我们现 ...

  9. IP/TCP协议详解

    系列文章目录 第一篇 : TCP/IP协议详解 第二篇 : IP协议 第三篇 : TCP协议 第四篇 : 面试准备 文章目录 系列文章目录 前言 第一章.TCP/协议族 1.1 层次介绍 1.2 封装 ...

最新文章

  1. 深度 | 一文读懂“情感计算”在零售中的应用发展
  2. 磁珠 磁环 双向二极管 TVS二极管
  3. 计算机游戏的英语怎么写,电脑游戏英语怎么写
  4. 第13步 用户模块前端(Admin)
  5. OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换
  6. java default parameter_JAVA菜鸟入门(7) default parameter , float/double vs BigDecimal
  7. 7-3 括号匹配 (15 分)
  8. (二)jquery学习----jquery的效果
  9. python是什么 自学-你们都是怎么自学python的?
  10. java浮点运算很难_关于Java:浮点运算不能产生精确结果
  11. oracle ora 16047,令人误解的ORA-16047: DGID mismatch between destination setting and target database...
  12. 推荐几个代码自动生成器,神器
  13. 10月22日Ajax培训日记
  14. IMX6 dts 配置GPIO
  15. java计算机毕业设计个人交友网站源码+数据库+系统+lw文档+mybatis+运行部署
  16. 考研:中国科学院地理所历年GIS研究生入学考试真题汇总
  17. 03.怎样调试学习mico-demos?
  18. 【jzoj1965】【递推】【普组模拟赛】马球比赛
  19. SUHO2018校招笔试
  20. Python3飞机大战全代码(亲测OJBK)

热门文章

  1. office365 java,使用Office365发送Javamail
  2. IP地址所属运营商查询
  3. 加工中心面板操作示意图
  4. 全国计算机等级考试一本通关六合一,2014年全国计算机等级考试一本通关六合一 二级公共基础知识与C语言程序设计 无纸化考试专用...
  5. CP2102六合一多功能串口模块使用
  6. 汽车低压连接器-市场现状及未来发展趋势
  7. 婚恋交友系统—基于likeadmin管理后台搭建
  8. 股市连续大跌,上证指数创新低,还是安心做工业
  9. 机房环境监控系统规范设计的重要性!
  10. echarts区县级地图展示