关于网络编程中MTU、TCP、UDP、IP
名词解释:
MTU(Maxium Transmission Unit)最大传输单元
TCP (Transmission Control Protocal)传输控制协议
UDP (Usage Datagram Protocal)用户数据报协议
IP (Internet Protocal) 因特网协议
TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层(TCP/IP是一个协议簇,并不是代表TCP协议和IP协议)
以太网(Ethemet)的数据帧在链路层
IP包在网络层
TCP或UDP包在传输层
TCP或UDP中的数据(Data)在应用层
1.链路层:以太网的数据帧的长度为(64+18)~(1500+18)字节,其中18是数据帧的帧头和帧尾,所以数据帧的内容最大为1500字节(不包括帧头和帧尾),即MUT为1500字节
字段
|
字段长度(字节)
|
目的
|
前导码(Preamble)
|
7
|
同步
|
帧开始符(SFD)
|
1
|
标明下一个字节为目的MAC字段
|
目的MAC地址
|
6
|
指明帧的接受者
|
源MAC地址
|
6
|
指明帧的发送者
|
长度(Length)
|
2
|
帧的数据字段的长度(长度或类型)
|
类型(Type)
|
2
|
帧中数据的协议类型(长度或类型)
|
数据和填充(Data and Pad)注
|
46~1500
|
高层的数据,通常为3层协议数据单元。对于TCP/IP是IP数据包
|
帧校验序列(FCS)
|
4
|
对接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧
|
2.网络层:IP包的首部要占用20字节,所以这里的MTU=1500-20=1480字节
3.传输层:UDP包的首部要占有8字节,所以这里的MTU=1480-8=1472字节
转载于:https://www.cnblogs.com/amwadyvi/p/3820711.html
关于网络编程中MTU、TCP、UDP、IP相关推荐
- Python核心编程(第3版)第2章网络编程中关于tcp/udp服务器和客户端实现代码的运行出错的修正
在Python核心编程(第3版)第2章网络编程中, 关于tcp/udp服务器和客户端实现代码的运行会出现 ['str' does not support the buffer interface]之类 ...
- 用java网络编程中的TCP方式上传文本文件及出现的小问题
自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文 ...
- 关于网络编程中MTU、TCP、UDP优化配置的一些总结
首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层. 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在 ...
- linux网络编程中端口号和ip地址转换方法
0.字节序 网络字节序:是大端序,即:高字节放在低地址位置 比如:0x7F000101 对于一个整型,如上,我们看到的该形式,只是在大小端主机中存储的顺序是相反的. 网络序的存储方式是 7F 00 ...
- 【python网络编程】创建TCP/UDP服务器进行客户端/服务器间通信
客户端/服务器网络编程介绍 套接字:通信端点 实例:客户端发送数据,接收服务器返回的时间戳 用Python 编写FTP 客户端程序 客户端/服务器网络编程介绍 软件服务器也运行在一块硬件之上,但是没有 ...
- 【Java 网络编程】Socket TCP UDP 联系
文章目录 I 信息传输关注点 II Socket 与 TCP UDP 关系 III Socket 连接组成 ( IP地址 + 端口号 ) IV Socket TCP V Socket UDP VI C ...
- 网络编程:概述TCP/UDP以及端口号的作用
TCP/UDP对比 1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前 不需 要建立连接 2. TCP提供可靠的服务.也就是说,通过TCP连接传送的数据,无差错,不丢失 ...
- Linux下Tcp保活时间默认多少,C/C++网络编程中的TCP保活
在默认的情况下,TCP连接是没有保活的心跳的.这就是说,当一个TCP的socket,客户端与服务端谁也不发送数据,会一直保持着连接.这其中如果有一方异常掉线,另一端永远也不可能知道.这对于一些服务型的 ...
- C/C++网络编程中的TCP保活
原博客:http://blog.csdn.net/weiwangchao_/article/details/7225338 Linux环境下的TCP Keepalive参数设置 为什么说是系统默认值的 ...
最新文章
- include和require的区别
- Ambari安装之部署3个节点的HA分布式集群
- 3. 什么是icmp?icmp与ip的关系_「2020.12.3」黄俊捷热搜被爆料?郭俊辰交往女朋友?为什么三只跨年不合体?郝富申和王俊凯关系?Naomi和alracco?...
- 【完结】给新手的12大深度学习开源框架快速入门项目
- pccad自定义图框_(PCCAD自定义标题栏详细方法.doc
- ActiveMQ反序列化漏洞(CVE-2015-5254)复现
- Python+matplotlib自定义坐标轴位置、颜色、箭头
- iphone查看删除的短信_手机里的短信不小心删除了怎么才能恢复?此文为你解答...
- pr如何跳到关键帧_pr怎么跟踪?pr怎么做运动跟踪怎么用?
- win7控件无法安装怎么办【系统天地】
- 分段点处导数怎么求,导数和导函数的极限有关系吗?
- android-c2手机,[视频]最新Android One手机Nokia C2登场:搭载紫光展锐处理器
- CentOS7挂载光盘
- 微服务swoft打造腾讯云短信网关
- jQuery技巧之让任何组件都支持类似DOM的事件管理
- 手机数据线种类有哪些
- 启明欣欣STM32开发板闪烁LED实验
- linux下硬件检测工具,Linux硬件检测工具
- 小程序背景图满屏_手机秒变闪屏弹幕,撩妹小程序,赶快来学!
- 美国研究生统计学专业申请及就业情况浅析