------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参考模型(七层协议)(理论上的模型)
2.TCP/IP参考模型(五层协议)(实际中的模型)
由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层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、XWindows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
UDP
将数据及源和目的封装成数据包中,不需要建立连接
每个数据报的大小限制在64k内
不需要建立连接,速度快
由于是无连接,是不可靠协议
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网络时间协议)和DNS(DNS也使用TCP)。
欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。