黑马程序员——UDP与TCP初步

时间:2023-02-21 14:30:05
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.两个程序通信步骤
1,找到对方ip
2.数据要发送到对方指定的应用程序上,为了标示这些应用程序,所以给这些网络应用程序都用数字进行标示,为了方便称呼这个数字,叫做端口,即逻辑端口,区别于物理端口(可见的);
3.定义通信规则,这个通讯规则称为协议

2.常见的一些ip地址

   mysql:3306,oracle:1503,sqlserver,tomcat:80

3.数据拆包和装包:

    1.应用层协议:http,ftp

    2.传输层:tcp,udp

    3,网际层:ip网际协议


网络编程

网络模型:

1,OSI参考模型(七层协议)(理论上的模型)

黑马程序员——UDP与TCP初步

2.TCP/IP参考模型(五层协议)(实际中的模型)

黑马程序员——UDP与TCP初步


由1的通信步骤得到网络的通讯要素:

1.ip地址

网络中设备的标识

不易记忆,可用主机名

本地回环地址:127.0.0.1主机名:localhost

2.端口号

用于标识进程中的逻辑地址,不同进程的标识

有效端口:0¬65535,其中0¬1024系统使用或保留端口

3.传输协议

通讯的规则

常见协议:TCP,UDP

TCP

建立连接,形成传输数据的通道,

在连接中进行大数据量传输

通过三次握手完成连接,是可靠协议

必须简历连接,效率较低



TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP是面向连接的所以只能用于端到端的通讯。

TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用以限制发送方的发送速度。

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如TelnetFTPrloginXWindowsSMTP)需要高度的可靠性,所以它们使用了TCPDNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。

UDP

将数据及源和目的封装成数据包中,不需要建立连接

每个数据报的大小限制在64k

不需要建立连接,速度快

由于是无连接,是不可靠协议

UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。

UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。

UDPTCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTPTelnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNSDNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。