不同的机器发过来也行。只要发到相应的ip 和端口就行了。
因为UDP和TCP不同,UDP是不需要首先建立连接的。
用户: 需求发起者。
数据传输过程图:
应用程序: 发起数据的传输交流过程。
过程:
过程:
过程:
过程:
过程:
过程:
过程:
注: OSI参考模型总结 - 小白的博客 - CSDN博客
访问服务器的过程可以通过 windows+R 快捷命令 --> 进入运行界面--->然后通过cmd 命令 --->进入控制台--->然后输入命令 tracert + 访问的域名网址-->查看访问过程。
ping命令来测试网络连接:
物理层常见故障:
硬件连接问题:1接触不良2硬件未连通
数据链路层故障:
1MAC地址冲突不能上网;
2交换机与计算机网卡的带宽协商不一致,网速不一致导致网络不通;
3ADSL欠费导致网络不通;
4将计算机错误的连接到VLAN(Virtual Local Area Network)。
注:
网络层故障:
1计算机IP地址设置错误。
2计算机没有设置网关。
3计算机子网掩码配置错误。
4沿途路由器路由表错误。
传输层故障:
表示层故障:
乱码问题(字符集对应错误)
应用层故障:
应用层程序配置问题(浏览器服务器的配置问题导致上网故障等)
物理层安全:
防止非法计算机接入公司网络(包括无线AP)
数据链路层安全:
1设置WiFi密码,属于网络链路层添加秘钥的方法。
2公司内部的交换机可以设置哪个Mac地址可以接入,设置接多少台计算机。
3家里的ASDL拨号上网的需要登入账号密码。
4划分不同的VLAN(Virtual Local Area Network)
网络层安全:
1在路由器上设置ACL控制数据包转发,控制网络。
2在计算机上设置网络安全,设置访问权限。
应用层安全:
发现软件漏洞,增补丁。
TCP用主机的IP地址加上主机上的端口号作为TCP连接的端点,这种端点就叫做套接字(socket)或插口。套接字可以实现将多个客户连接到一个服务器。
它是网络通信中端点的抽象表示,包含进行网络通信必需的五种信息:1连接使用的协议,2本地主机的IP地址,3本地进程的协议端口,4远地主机的IP地址,5远地进程的协议端口。
1域: 套接字通信中使用的网络介质,常见的有AF_INET(因特网络)
2类型:
a 流式套接字(sock_stream): 用于提供面向连接、有序的、可靠的双向jie节流的链接式数据传输服务,由类型sock_stream指定,他是在AF_INET域中通过TCP/IP链接实现的。
b 数据报套接字(sock_dgram): 提供了一种无连接的服务,是AF_INET域中通过UDP/IP链接实现的。
c 原始套接字(sock_raw): 允许对较低层次的协议直接访问,比如IP、ICMP协议,他常用于检验新的协议的实现或者访问现有服务中配置的新设备。网络监听技术很大程度上依赖于socket_raw
3协议: 套接字协议一般采用默认值。即默认参数为0。
1套接字是用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
2当前应用进程需要使用网络进行通信时,就会发出系统调用,请求 *** 作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。
3 *** 作系统为这些资源的总和,用一个叫做套接字描述符的号码表示,并把此号码返回给应用进程,应用进程所进行的网络 *** 作都必须使用这个号码。
4通信完毕后,应用进程通过一个关闭套接字的系统调用通知 *** 作系统回收与该“号码”相关的所有资源。
1连接创建阶段
a套接字被创建后,其端口号和IP地址都是空的,应用进程调用bind(绑定)来指明套接字的本地地址(在服务器端调用bind时就是把熟知端口号和本地IP填写到已创建的套接字中)
b服务器调用bind后 ,还必须调用listen(收听)把套接字设置为被动方式,以便随时接收客户的服务请求。(UDP服务器由于只提供了无限连接服务,不使用listen系统调用)
c客户进程发送连接请求后,服务器紧接着调用accept(接受),以把客户进程发来的连接请求提取出来。(系统调用accept的一个变量就是要指明哪一个套接字发起的连接。)
2数据传输阶段
客户和服务器都在TCP连接上使用send系统调用传送数据,使用recv系统调用接收数据。
3连接释放阶段
一旦客户或者服务器结束使用套接字,就把套接字撤销,此时调用close释放连接和撤销套接字。应用层总结-系统调用和应用编程接口 - 十分残念的博客 - CSDN博客
其过程示意图如下:
网络编程的目的:
直接或间接地通过网络协议与其他计算机进行通讯。
网络编程的问题:
1如何准确的定位网络上一台或多态主机。
2找到主机后,如何快速高效的传输数据。
网络编程的对象:
传输层提供的面向应用的可靠或非可靠的数据传输机制。
网络编程流行模型:
1CS模型(客户端/服务器模型)
2BS模型(浏览器/服务器模型)
参考网络编程--Socket(套接字) - A-祥子 - 博客园
注: 扩展链接内关于TCP/IP的相关知识讲解也相当详细,可以参考浏览一下。
1、\x0d\IP数据包包含 tcp数据包 udp数据包,IP是第三层(网络层)的协议,TCP与UDP都属于第四层(传输层)的协议。\x0d\\x0d\TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。\x0d\UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快\x0d\2、关键点区分:\x0d\ A。基于连接与无连接 \x0d\ B。对系统资源的要求(TCP较多,UDP少) \x0d\ C。UDP程序结构较简单 \x0d\ D。流模式与数据报模式 \x0d\ E。TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证\x0d\3、\x0d\TCP发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执行超时重发,因此TCP最大的优点是可靠。一般网页(>
实时传送协议(Real-time Transport Protocol或简写RTP,也可以写成RTTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。
RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTCP协议或者RTSP协议)。因为RTP自身具有Time stamp所以在ffmpeg 中被用做一种formate
RTP协议格式:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT | sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| synchronization source (SSRC) identifier |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
| contributing source (CSRC) identifiers |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
上图引自rfc3550,由上图中可知道RTP报文由两个部分构成--RTP报头和RTP的负载:
RTP报文由两部分组成:报头和有效载荷。RTP报头格式如图67所示,其中:
1V:RTP协议的版本号,占2位,当前协议版本号为2。
2 P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
3 X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。
4 CC:CSRC计数器,占4位,指示CSRC 标识符的个数。
5 M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。
6 PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。
7 序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,在helix服务器中这个字段是从0开始的,同时音频包和视频包的sequence是分别记数的。
8 时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
9 同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
10 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
如果扩展标志被置位则说明紧跟在报头后面是一个头扩展,其格式如下:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| defined by profile | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| header extension |
| |
RTP协议的用途:
概述中已经基本阐述了RTP协议的用途了,其主要用于在互联网上传递音频和视频的标准数据包。在当前三网融合中RTP可以用来承载TS流,进行电视媒体数据的传播。RTP可以用来传送像TS流这种自身已经具有formate的媒体流,同时也可以用来承载AVC,AAC等去除了fromate的媒体流,这时rtp协议可被看做为一种formate,这种形式最少常见于helix 流媒体服务器的rtp流。其控制流由RTSP协议来提供。
RTP协议的使用:
RTP的使用实例之一如上图:
上面是某省IPTV20早期的一个数据包的情况。从包中可以看出RTP是怎么和RTSP配合一起使用的。从包402到411为RTSP的协商过程,RTSP在PLAYer命令后数据包就到来。紧跟其后412包就是一个mpeg 的PES包,它是有由rtp来承载的TS来形成。从在420包中就可以更加清析的看出这个RTP流的情况。其PT即payload type为mpeg2 transport streams 也就是ts流,其SSRC为:0x65737D6c,其Seq号为15764,从中也可以看出对于一个RTP流其SEQ号可以开始于一个随机的数值,但是肯定是逐包递增的。下图为420包的展开图:
从中可以看出承载RTP的为UDP的数据流这个包中有x标志位为1则说明其有 header extensions其header extensions为最下面。extension 的 profile为23128,长度为:2内容如上图最后两部分。
相同点:
1、OSI网络层
它们都根据OSI参考模型生活在同一层。我们称这层为传输层。在套接字之间的这一层中,传
输数据。他们在这方面没有区别。
2、安全
从安全角度来看,TCP和UDP都是相同的。实际上,TCP由于其会话管理而具有一些小优势,
但从总体上看,如果实现SSL,加密等安全机制,则存在安全性。除UDP之外,实现类似TCP
的协议的SSL / TLS非常容易。另一方面,像RTP这样的语音通信协议可以升级到SRTP,使底
层UDP更安全。
不同点:
1、数据包结构
UDP具有精简包结构。UDP在其标题部分中仅提供源,目标端口,长度,校验和。TCP在包中
有更多字段,因为TCP传输有更多的步骤和控件来进行包传递。TCP有12个头字段。
2、复杂程度
TCP绝对比UDP协议更复杂。正如我们在上侧看到的,TCP具有很多传输相关机制的区域。例
如,TCP提供了设置传输缓冲区相关内存的窗口机制。UDP只有校验和机制和数据包计数器,
有时候没有实现。
3、算法
要使用TCP传输数据,必须使用名为3次握手的方法创建会话。第一个客户端发送一个包含SYN
标志的数据包,服务器用ACK标志响应,最后一步客户端发送SYNC + ACK以完成与相关服务
器的TCP会话。UDP没有任何特殊算法。UDP包直接发送到服务器的端口。管理层通常在上层
应用程序层中执行。
4、速度
TCP协议的复杂性使TCP比UDP慢。至少要发送一个字节,需要进行会话初始化,并在数据传
输后关闭会话。这使TCP变慢。关于TCP的速度已经做了一些工作,但架构是有限的新增强功
能。如果您通过光纤传输UDP,则UDP 速度很快UDP速度很快,因为没有会话或会话终止的
算法。
5、可靠性
TCP是一种可靠的协议,因为它运行机制来防止数据丢失或更改。TCP使用会话来提高数据传
输的可靠性。同样在数据传输中,在两侧之间检查传输的数据,并且如果发生一些丢失或改
变,则再次重新传输数据。UDP也不可靠。真的不是。但是,如果您希望它是可靠的上层应用
程序级别机制可以实现,但这些将使传输更复杂。
6、协议
在这部分中,列出使用UDP或TCP或两者的协议。
UDP以下协议使用UDP传输。
DHCP
DNS
流
RDP
TFTP
SNMP
VOIP
TCP以下协议使用TCP传输。
>
>
FTP
SMTP
TELNET
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)