tcpudp协议号.docx
- 文档编号:12856096
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:11
- 大小:22.41KB
tcpudp协议号.docx
《tcpudp协议号.docx》由会员分享,可在线阅读,更多相关《tcpudp协议号.docx(11页珍藏版)》请在冰豆网上搜索。
tcpudp协议号
竭诚为您提供优质文档/双击可除
tcp,udp协议号
篇一:
协议号与端口号区别
协议号与端口号区别
协议号和端口号的区别
网络层-数据包的包格式里面有个很重要的字段叫做协议号。
比如在传输层如果是tcp连接,那么在网络层ip包里面的协议号就将会有个值是6,如果是udp的话那个值就是17-----传输层
传输层--通过接口关联(端口的字段叫做端口)---应用层,详见RFc1700
协议号是存在于ip数据报的首部的20字节的固定部分,占有8bit.该字段是指出此数据报所携带的是数据是使用何种协议,以便目的主机的ip层知道将数据部分上交给哪个处理过程。
也就是协议字段告诉ip层应当如何交付数据。
而端口,则是运输层服务访问点tsap,端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层的进程。
端口号存在于udp和tcp报文的首部,而ip数据报则是将udp或者tcp报文做为其数据部分,再加上ip数据报首部,封装成ip数据报。
而协议号则是存在这个ip数据报的首部.
比方来说:
端口你在网络上冲浪,别人和你聊天,你发电子邮件,必须要有共同的协议,这个协议就是tcp/ip协议,任何网络软件的通讯都基于tcp/ip协议。
如果把互联网比作公路网,电脑就是路边的房屋,房屋要有门你才可以进出,tcp/ip协议规定,电脑可以有256乘以256扇门,即从0到65535号“门”,tcp/ip协议把它叫作“端口”。
当你发电子邮件的时候,e-mail软件把信件送到了邮件服务器的25号端口,当你收信的时候,e-mail软件是从邮件服务器的110号端口这扇门进去取信的,你现在看到的我写的东西,是进入服务器的80端口。
新安装好的 true;intextads_gglayer="_u4e2a_u4eba_u7535_u8111";keygate_ads.showggads(this,"_u4e2a_u4eba_u7535_u8111",event)"style="border-top-width:
0px;padding-right:
0px;padding-left:
0px;
font-weight:
normal;border-left-width:
0px;border-bottom-width:
0px;padding-bottom:
0px;margin:
0px;cursor:
hand;color:
#0000ff;padding-top:
0px;border-right-width:
0px;text-decoration:
underline"onclick="javascript:
window.open("/urlsa=lggkwclickstat("个人电脑",".cn/eshop","afs","1000016002");"onmouseout="isshowgg=false;intextads_gglayer="_u4e2a_u4eba_u7535_u8111"">个人电脑打开的端口号是139端口,你上网的时候,就是通过这个端口与外界联系的。
关于端口,再做一些补充
现在假设我们有一台服务器,别人可以用一种tcp/ip协议的一种如ftp登录上我们的机器上进行文件的上传下载,但是同时我们又希望别人能够浏览我们的web服务器,如果要是没有端口,那末很显然,我们无法区分这两种不同的服务,同时客户端也无法区分我们给他提供了那种服务。
我们现在采用端口来解决这个问题,在使用tcp/ip协议在主机上建立服务之前,我们必须制定端口,指定端口号将表示运行的是那种服务。
比如,客户端发送一个数据包给ip,然后ip将进来的数据发送给传输协议(tcp或者udp),然后传输协议再根据数据包的第一个报头中的协议号和端口号来决定将此数据包给哪个应用程序(也叫网络服务)。
也就是说,协议号+端口号唯一的确定了接收数据包的网络进程。
由于标志数据发送进程的源端口号和标志数据接受进程的目的端口号都包含在每个tcp段和udp段的第一个分组中,系统可以知道到底是哪个客户应用程序同哪个服务器应用程序在通讯,而不会将数据发送到别的进程中。
但是要注意的一点是同样的一个端口在不同的协议中的意义是不同的,比如tcp和udp中的端口31指的并不是同一个端口。
但是对于同一个协议,端口号确实唯一的。
在端口中分为两种,一是知名端口,也即小于256的端口号。
另一种是动态分配的端口,也就是在需要时再将其赋给特定的进程。
这类似于nt服务器或者163拨号上网,也就是动态的分配给用户一个目前没有用到的标志。
动态分配的端口号都是高于标准端口号范围的。
网络服务常用的应用协议和对应的标准端口号
《网络服务通用的应用协议和对应的标准(默认)端口号:
》
应用协议端口号/协议说明
ftp-data20/tcpFtp,data
ftp21/tcpFtp.control
telnet23/tcp
smtp25/tcpsimplemailtransferprotocol
time37/tcptimserver
time37/udptimserver
domain53/tcpdomainnameserver
domain53/udpdomainnameserver
tftp69/udptrivialFiletransfer
gopher70/tcp
http80/tcpwww-httpworldwideweb
pop3110/tcppostofficeprotocol-Version3
nntp119/tcpnetworknewstransferprotocol
netbios-ns137/tcpnetbiosnameservice
netbios-ns137/udpnetbiosnameservice
netbios-dgm138/udpnetbiosdatagramservice
netbios-ssn139/tcpnetbiossessionservice
imap143/tcpinternetmessageaccessprotocol
snmp161/udpsnmp
snmptrap162/udpsnmptrap
irc194/tcpinternetRelaychatprotocol
ipx213/udpipxoverip
ldap389/tcplightweightdirectoryaccessprotocol
https443/tcp
https443/udp
uucp540/tcp
ldaps636/tcpldapovertls/ssl
doom666/tcpdoomidsoftware
doom666/udpdoomidsoftware
phone1167/udpconferencecalling
ms-sql-s1433/tcpmicrosoft-sql-server
ms-sql-s1433/udpmicrosoft-sql-server
ms-sql-m1434/tcpmicrosoft-sql-monitor
ms-sql-m1434/udpmicrosoft-sql-monitor
wins1512/tcpmicrosoftwindowsinternetnameservice
wins1512/udpmicrosoftwindowsinternetnameservice
l2tp1701/udplayertwotunnelingprotocol
1720/tcp
qicq4000/udp
qicq8000/udp
qq1080/udpsocks代理
《木马的常用连接端口》
木马类软件常用的连接端口,如tcp135、139、445、3389、5000等,我们称为敏感端口,另外“冰河”常用7626端口、“广外女生”常用6267端口。
《Vpn使用端口:
》
l2tp1701/udp#layertwotunnelingprotocol
pptp1723/tcp#point-to-pointtunnellingprotocol
《远程控制软件pcanywhere使用的端口》
它的“被控端”使用2个端口,数据端口(5631)和状态端口(5632)。
《bt下载使用的端口》
bt默认使用的端口是6881,6882,6883.....6889的tcp连接(每一个下载只使用一个端口,顺次分配)《架设cs服务器》
指定游戏连接端口为27016。
ip协议号
十进制关键字协议
============================
0hopoptipv6逐跳选项
1icmpinternet控制消息
2igmpinternet组管理
3ggp网关对网关
4ipip中的ip(封装)
5st流
6tcp传输控制
7cbtcbt
8egp外部网关协议
9igp任何专用内部网关
(cisco将其用于igRp)
10bbn-Rcc-monbbnRcc监视
11nVp-ii网络语音协议
12puppup
13aRgusaRgus
14emconemcon
15xnet跨网调试器
16chaoschaos
17udp用户数据报
18mux多路复用
19dcn-measdcn测量子系统
20hmp主机监视
21pRm数据包无线测量
22xns-idpxeRoxnsidp
23tRunk-1第1主干
24tRunk-2第2主干
25leaF-1第1叶
26leaF-2第2叶
27Rdp可靠数据协议
28iRtpinternet可靠事务
29iso-tp4iso传输协议第4类
30netblt批量数据传输协议
31mFe-nspmFe网络服务协议
32meRit-inpmeRit节点间协议
33sep顺序交换协议
343pc第三方连接协议
35idpR域间策略路由协议
36xtpxtp
37ddp数据报传送协议
38idpR-cmtpidpR控制消息传输协议39tp++tp++传输协议
40ilil传输协议
41ipv6ipv6
42sdRp源要求路由协议
43ipv6-Routeipv6的路由标头
44ipv6-Fragipv6的片断标头
45idRp域间路由协议
46RsVp保留协议
47gRe通用路由封装
48mhRp移动主机路由协议
49bnabna
50espipv6的封装安全负载
51ahipv6的身份验证标头
52i-nlsp集成网络层安全性tuba53swipe采用加密的ip
54naRpnbma地址解析协议
55mobileip移动性
56tlsp传输层安全协议
使用kryptonet密钥管理
57skipskip
58ipv6-icmp用于ipv6的icmp
59ipv6-nonxt用于ipv6的无下一个标头60ipv6-optsipv6的目标选项
61任意主机内部协议
62cFtpcFtp
63任意本地网络
64sat-expaksatnet与后台expak65kRyptolankryptolan
66RVdmit远程虚拟磁盘协议
67ippcinternetpluribus数据包核心68任意分布式文件系统
69sat-monsatnet监视
70VisaVisa协议
71ipcVinternet数据包核心工具
72cpnx计算机协议网络管理
73cphb计算机协议检测信号
74wsn王安电脑网络
75pVp数据包视频协议
76bR-sat-mon后台satnet监视
77sun-ndsunndpRotocol-temporary78wb-monwideband监视
79wb-expakwidebandexpak80iso-ipisointernet协议
81VmtpVmtp
82secuRe-VmtpsecuRe-Vmtp83VinesVines
84ttpttp
85nsFnet-igpnsFnet-igp
86dgp异类网关协议
87tcFtcF
88eigRpeigRp
89ospFigpospFigp
90sprite-RpcspriteRpc协议
91laRp轨迹地址解析协议
92mtp多播传输协议
93ax.25ax.25帧
94ipipip中的ip封装协议
95micp移动互联控制协议
96scc-sp信号通讯安全协议
97etheRipip中的以太网封装
98encap封装标头
99任意专用加密方案
100gmtpgmtp
101iFmpipsilon流量管理协议
102pnniip上的pnni
103pim独立于协议的多播
104aRisaRis
篇二:
tcpintcounter;counter=0;while(size>0){
uint16val=buffer[counter];
cksum+=convert.toint32(buffer[counter]);counter+=1;size-=1;}
cksum=(cksum>>16)+(cksumcksum+=(cksum>>16);return(uint16)(~cksum);}
构造udp报文(含有检验和)需要的输入参数包括:
uint32源ip、uint32目的ip、uint16源端口号、uint16目的端口号、byte[]数据部分、uint16数据部分的长度
publicbyte[]构造udp数据报(uint32源ip,uint32目的ip,uint16源端口号,uint16目的端口号,byte[]数据部分,uint16数据部分的长度){
uint16总长度=(uint16)(8+数据部分的长度);uint16校验和=0;
//网络字节顺序
源ip=(uint)ipaddress.hosttonetworkorder((int)源ip);
目的ip=(uint)ipaddress.hosttonetworkorder((int)目的ip);
源端口号=(ushort)ipaddress.hosttonetworkorder((int16)源端口号);
目的端口号=(ushort)ipaddress.hosttonetworkorder((int16)目的端口号);总长度=(ushort)ipaddress.hosttonetworkorder((int16)总长度);//
byte[]udpbytes=newbyte[8+数据部分的长度];
bitconverter.getbytes(源端口号).copyto(udpbytes,0);//填入源端口号
bitconverter(tcp,udp协议号).getbytes(目的端口号).copyto(udpbytes,2);//填入目的端口号
bitconverter.getbytes(总长度).copyto(udpbytes,4);//填入总长度
bitconverter.getbytes(校验和).copyto(udpbytes,6);//校验和数据部分.copyto(udpbytes,8);
//下面是计算校验和.数据部分如果不是偶数字节则补一个字节.
byte[]伪报文=newbyte[20+(数据部分的长度+1)/2*2];//确保偶数字节bitconverter.getbytes(源ip).copyto(伪报文,0);//填入源端口号bitconverter.getbytes(目的ip).copyto(伪报文,4);//填入目的端口号伪报文[8]=0;//填充0.网络字节顺序
伪报文[9]=17;//和udp协议号
bitconverter.getbytes(总长度).copyto(伪报文,10);//填入总长度udpbytes.copyto(伪报文,12);
//stringss=网络字节串(伪报文);unsafe{
fixed(byte*pt=伪报文){
ushort*pu=(ushort*)pt;
校验和=计算校验和(pu,伪报文.length/2);}}
//不知道为什么不对校验和进行网络字节顺序的调整
bitconverter.getbytes(校验和).copyto(udpbytes,6);//校验和returnudpbytes;}
tcpudp报文解析
1udp报文:
udp报文比较简单,由四个字段组成,每个字段2个字节:
(1)源端口sourceport
(2)目的端口destinationport(3)长度:
udp用户数据报的长度(4)检验和checksum
scapy中定义的udp类(参数一一对应)>>>ls(udp)
sport:
shortenumField=(53)dport:
shortenumField=(53)len:
shortField=(none)chksum:
xshortField=(none)>>>
我们用这个发一个完整的udp数据包。
定义:
>>>eth=ether()
>>>ip=ip(dst=10.104.4.13)
>>>udp=udp(sport=4321,dport=4321)
>>>udppacket=eth/ip/udp/thisisanudpdatagram>>>sendp(udppacket).
sent1packets.>>>udppacket.show()###[ethernet]###dst=00:
11:
85:
ae:
03:
3bsrc=00:
22:
15:
27:
69:
16type=0x800###[ip]###
篇三:
tcp、udp协议详解
[转]tcp、udp协议详解
1.
现在internet上流行的协议是tcp/ip协议,该协议中对低于1024的端口都有确切的定义,他们对应着internet上一些常见的服务。
这些常见的服务可以分为使用tcp端口(面向连接)和使用udp端口(面向无连接)两种。
说到tcp和udp,首先要明白“连接”和“无连接”的含义,他们的关系可以用一个形象地比喻来说明,就是打电话和写信。
两个人如果要通话,首先要建立连接——即打电话时的拨号,等待响应后——即接听电话后,才能相互传递信息,最后还要断开连接——即挂电话。
写信就比较简单了,填写好收信人的地址后将信投入邮筒,收信人就可以收到了。
从这个分析可以看出,建立连接可以在需要通信的双方建立一个传递信息的通道,在发送方发送请求连接信息接收方响应后,由于是在接受方响应后才开始传递信息,而且是在一个通道中传送,因此接受方能比较完整地收到发送方发出的信息,即信息传递的可靠性比较高。
但也正因为需要建立连接,使资源开销加大(在建立连接前必须等待接受方响应,传输信息过程中必须确认信息是否传到及断开连接时发出相应的信号等),独占一个通道,在断开连接前不能建立另一个连接,即两人在通话过程中第三方不能打入电话。
而无连接是一开始就发送信息(严格说来,这是没有开始、结束的),只是一次性的传递,是先不需要接受方的响应,因而在一定程度上也无法保证信息传递的可靠性了,就像写信一样,我们只是将信寄出去,却不能保证收信人一定可以收到。
tcp是面向连接的,有比较高的可靠性,一些要求比较高的服务一般使用这个协议,如Ftp、telnet、smtp、http、pop3等,而udp是面向无连接的,使用这个协议的常见服务有dns、snmp、qq等。
对于qq必须另外说明一下,qq20xx以前是只使用udp协议的,其服务器使用8000端口,侦听是否有信息传来,客户端使用4000端口,向外发送信息(这也就不难理解在一般的显ip的qq版本中显示好友的ip地址信息中端口常为4000或其后续端口的原因了),即qq程序既接受服务又提供服务,在以后的qq版本中也支持使用tcp协议了。
2.
在了解tcp和udp之前,我们需要来了解俩个概念,面向连接的服务和无连接的服务,应用面向连接的服务时,客户和服务器在进行数据发送前,彼此向对方发送控制分组,这就是所谓的握手过程,使得客户和服务器都做好分组交换准备。
这个准备是很松散的,面向连接服务与很多其他的服务捆绑在一起,包括可靠的数据传输,流量控制和拥塞控制等,依赖连接以正确的顺序无错地传递所有数据。
还要使用确认和重传机制实现来可靠性。
而无连接服务侧是没有握手过程的,当一方想发送数据时就直接了当地发送,因为没有握手过程也就没有什么流量控制和拥塞控制,这样数据可能传输得更快,但是,由于也没有确认过程,源端就不知道那些分组到达了目的端。
因此可能在传输过程中丢失数据,不适合用在一些文件的传输,可以用在因特网电话,视频会议什么的。
tcp(传输控制协议)和udp(用户数据报协议)是传输层的俩个传输协议,它们俩个的最大区别就是是否面向连接。
tcp包括了面向连接和可靠数据传输服务,在客户端和服务器端进行通信前,要先交换传输层控制信息,为双方的通信做好准备。
在这个握手阶段后,我们就可以认为在这俩个进程间存在一个tcp连接,且是一个全双工的连接,在消息发送完后,应用程序会告诉tcp拆除这个连接。
可靠的传输服务为了保障彼此通信能无差错地顺序传递所有数据。
当其中任何一个应用程序把一个字节流传如套接字时,它可以指望tcp把同样的字节流传递到对方的套接字,中间不回丢失和重传。
tcp是因特网的一种公益服务,其目的是能调节数据传输过程中的一些问题,因此还要包含一个拥塞机制。
tcp拥塞机制在网络变得拥塞时阻止发送进程。
确切地说,tcp拥塞控制试图把每个tcp连接限定在它所公平共享的网络带宽上。
对于有最小带宽需求限制的实时音频或视频应用来说,阻止其带宽那就让它们不能正常工作,此外,我们能想象一下,在网络电话通话时,偶尔的不连续是可以容忍的,可见实时应用可以容忍丢失少部分数据,不需要完全可靠服务。
说了这么多,tcp能提供的好的服务,再看一下其缺点吧,首先,tcp不保证最小传输率,通俗点说,tcp不允许发送进程以想要的速率发送数据,受到tcp拥塞控制的调节,发送进程有可能被迫以一个较低的平均速率发送。
其次,tcp不提供任何延时保障,具体点说,发送进程把数据传入自己的tcp套接字后,这个数据将最终到达其接受套接字,但是中间所经历的时间就不能保证了,花几秒或则几分钟都不一定。
udp是一个非面向连接的轻量级传输协议,具有一个最简单的服务模型。
udp是无连接的,因此两个进程彼此通信之前没有握手过程。
udp提供不可靠的数据传输服务,也就是说当一个进程往自己套接字发送一个消息时,udp不能保障这个消息回最终到达接受套接字。
另外,就确实到达接收套节字的消息而言,他们的到达顺序也可能不是有序的。
udp不含拥塞控制机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tcpudp 协议