网络编程引入

什么是网络编程

简单来说,实现两台和两台设备以上的信息传输所需要的技术就是网络编程。

几个核心概念

IP

对于一台设备来说,实现网络编程需要首先确定这个设备的位置,这样我们才能像类似于io流一样知道信息发送的起点与终点,所以我们定义IP表示一台设备的地址。

端口

对于一个设备来说,它实现的应用程序肯定不止一个,但是在信息传输的时候,假设我们已经将两台设备的IP匹配的情况下,我们不希望自己在QQ上发送的消息传输到微信上,所以,对于每个客户端,我们需要自己的端口,确定信息应该进入哪个应用程序,这就是端口的意义。

域名

在我们使用浏览器时,访问一个网站,通常需要我们输入一个域名,而不是靠IP搜索,这是怎么回事呢?其实不然,域名只是IP通过DNS服务器解析成一个具有访问功能的字符串而已,本质还是需要IP访问。

C/S与B/S结构

C/S结构是指服务器和客户端的编程结构,而B/S是类似于浏览器和客户端的编程结构,这里不做深入解释,大致了解有两种架构形式即可。

网络编程的规范——通信协议

实现网络编程,需要两台或以上的设备能够遵循同一个收发信息的规则,在前人总结的基础上,提出了通信协议。其内容如下所示:
在这里插入图片描述
通过这样的协议要求,我们对于数据的传输就有着封装和拆封的过程,我们可以简单的理解为两台设备,假设设备A在应用层发出数据,那么这个数据需要在传输层,网络层,物理层层层包装,在传输到另一设备后又由反过来的方式拆掉外包装,最后到设别B的应用层接收。
这里作简要了解,熟悉这样的传递模式即可,在实际使用中很少会使用到ISO参考模型,我们更愿意把七个层次拆分成应用层,传输层,网络层和物理,数据链路层,从而得到我们的TCP/UDP协议。

TCP协议

TCP协议的整体框架十分庞大,我们首先先了解一下最经典的TCP传输的三次握手和四次挥手问题,他们的作用是保持信息传输的可靠性。

三次握手

在这里插入图片描述
上图给出了一个恰当的比喻,首先发出信息,服务器给出反馈,客户端接受反馈,最后客户端返回知道反馈这个信息,保证双方都知情,从而信息传输的可靠性有所体现。

四次挥手

在这里插入图片描述
在断联过程中,客户端首先发送预指令,服务器接收后给出反馈,让客户端知道它收到这个消息了,然后服务器发送预关闭的通知信息,最后客户端询问是否真的断开了,如果没有断开,则服务器又可以收到信息,重新断联,否则就结束传输。

UDP协议的弊端

相比之下,UDP协议在信息传输中不具有可靠性,因为它将信息拆成小包的形式一个一个传输,可能出现丢包的现象,从而信息残缺。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值