一、网络通信基本概念
网络就是用物理链路将各个孤立的主机连接在一起,组成数据链路,从而达到资源共享和通信的目的。
网络通信是通过网络将各个孤立的设备进行连接,通过信息交换实现人与人,人与计算机,计算机与计算机之间的通信。
网络通信中最重要的就是网络通信协议。
二、网络编程要解决的问题
网络编程要解决的2个问题:
(1)如何准确定位网络上一台或多台计算机?
IP + 端口
(2)找到主机之后如何让进行高效的数据传输?
提供网络通信协议,TCP/IP参考模型
三、通信要素
四、OSI7层模型
每一层利用下一层提供的服务与对等层通信,每一层使用自己的协议
这一模型是绝大多数网络编程的基础,作为抽象类而存在
TCP/IP协议栈知识这一模型的一个具体实现
3.1数据链路层
以太网规定,接入网络的设备都必须安装网络适配器,即网卡。数据包必须是从一块网卡传到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太网采用广播的形式,把数据包发送给该子网内所有的主机,子网内每台主机在接收到这个包以后,都会读取首部里面的目标MAC地址,然后和自己的MAC地址进行比对,如果不同就舍弃,相同就做进一步处理。
所以,数据链路层的主要工作就是对电信号进行分组,并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。
3.2网络层
其主要协议有:IP协议 DNS协议
主要进行逻辑寻址,实现不同网络之间的路径选择
3.3 传输层
主要协议:TCP协议 UDP协议
主要定义传输数据的协议端口号及流控和差错校验
五、TCP/IP协议
5.1 历史背景
Internet的前身ARPANET当时使用的并不是TCP/IP协议,而是一种网络控制协议(Network Control Protocol, NCP)的网络协议。
但随着网络的发展以及用户对网络需求的不断提高,设计者们发现,NCP协议存在着很多缺陷以至于不能充分利用ARPANET网络。特别是NCP仅能用于同构环境中(所谓同构环境,就是网络上所有的计算机都运行相同的操作系统)。
设计者们认为,同构的限制不应该被加到一个分布广泛的网络上。
1980年,用于异构环境的TCP/IP协议研制成功,也就是说,TCP/IP协议可以在各种操作系统上实现互操作。
1982年ARPANET开始采用了TCP/IP协议。
5.2 特点
- 完全开放、免费,独立于特定的计算机硬件和操作系统
- 独立于网络硬件,可以运行在广域网,更适合互联网
- 网络地址统一分配,网络中每一台设备都具有唯一的一个地址
- 高层协议标准化,可以提供多种多样可靠服务