前言
Hello,我是修齊。
学习C++的第一百零二十一天,前面C++入门到精通算是勉强了解完了,还有好多没记住,好多没搞明白,先往前面看看吧,今天纠结了很久,最后开了一本新书学习网络编程,路不一定对,但很用心学习,所有走过的路,都会是风景。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔记。
一、网络编程
TCP/IP协议、本机网络信息编程、
多线程编程、套接字编程、
简单网络服务器设计、
基于IO模型的网络开发、
网络性能工具iperf的使用、
Winlnet开发浏览器、Http编程、
Web编程、winpcap编程、
ICE网络编程、IPv6编程
二、TCP/IP
1.TCP/IP:Transmission Control Protocol/Internet Protocol<传输控制协议、因特网互联协议>(网络通信协议)。
2.TCP/IP协议指的是一个协议簇,包括多个网络协议(IP协议、IMCP协议、TCP协议、HTTP协议、FTP协议、POP3协议等)。不是指一个协议,也不是两个协议合称。
3.TCP/IP定义就算机操作系统如何连入因特网,以及数据如何在它们之间传输的标准。
三、TCP/IP协议的分层结构
1.协议簇层次由上到下,分四层《应用层、传输层、网际层、网络接口层》
2.应用层:Application Layer:包含所有高层协议:
虚拟终端协议(TELcommunications NETwork,TELNET)一台机器上的用户登录到远程机器上并进行工作。
文件传输协议(File Transfer Protocol,FTP)提供有效地将文件从一台机器上移到另一台机器上的办法。
电子邮件传输协议(Simple Mail Transfer Protocol,SMTP)电子邮件的收发。
域名服务(Domain Name Service,DNS)把主机名映射到网络地址。
网络新闻传输协议(Net News Transfer Protocol,NNTP)新闻的发布、检索和获取。
超文本传输协议(HyperText Transfer Protocol,HTTP)www上获取主页。
3.传输层:Transport Layer<TCP协议和UDP协议所在>
.TCP:传输控制协议是面向连接的协议,提供可靠的报文传输和对上层应用的链接服务。
.TCP有可靠的性保证、流量可控制、多路可复用、优先权和安全性控制。
.UDP:(User Datagram Protocol)用户数据报协议:面向无连接的不可靠传输协议。
.UDP:不需要TCP的排序和流量控制等功能。
4.网际层:Internet Layer<Internet层、网络层>整个TCP/IP体系结构的关键部分
.使主机可以把分组发往任何网络,并使分组独立地传向目标。
。分组经由不同的网络,到达的顺序和发送的顺序会不同。
。使用的协议有IP(Internet Protocol)因特网协议
5.网络接口层:Network Interface Layer<数据链路层>整个体系结构的基础部分
.接收IP层的IP数据包,通过网络向外发送、接收处理从网络上来的物理帧,抽出IP数据包,向IP层发送。
.主机和网络的实际连接层,下面是实体线路(以太网络、光纤网等)。
.有以太网、令牌环网等标准。
.负责网卡设备的驱动、帧同步(从网线上检测到什么信号算作为新帧的开始)、冲突检测(检测到冲突就自动重发)、数据差错校验等工作。
.交换机是工作在链路层的网络设备。(可在不同链路层间转发数据帧(十兆以太网和百兆以太网间/以太网和令牌环网间))。
.交换机将进来的数据帧拆掉链路层首部重新封装之后再转发。
6.不同协议层对本层数据单元有不同的称谓,传输层:数据段;简称:段(segment)/网络层:数据包(packet);简称:IP包、分组/链路层:帧(frame);简称:数据帧。
7.数据封装成帧发到传输介质,到达目的主机后每层协议再剥掉相应的部首,最后将应用层数据交给应用程序处理。
四、 网页工作原理
发送方
。浏览器:www.xxx.com+回车键,访问网页=>访问Web服务器上的网页
。应用层采用HTTP协议,浏览器将网址等信息组成HTTP数据,并送给下一层
。传输层在数据前加TCP首部,标记端口为80(Web服务器默认端口),并传给下一层
。网络层在数据段前加上自己机器的IP和目的IP,这时这个段称为IP数据包(或报文),并将IP包给下一层
。网络接口层在IP数据包前加上自己机器的MAC地址,以及目的MAC地址,这时加上MAC地址的数据称为帧。
。网络接口层通过物理网卡将帧以比特流的方式发送到网络
互联网有路由器,读取比特流中的IP地址选路,到达正确网段,网段的交换机读取比特流中的MAC地址,找到对应接收机器
接收方
。网络接口层用网卡接收到比特流,读取帧,将帧中的MAC地址去掉,就是IP数据包,传递上一网络层
。网络层接收IP数据包,将IP从包前拿掉,取出TCP数据段交给传输层
。传输层得到数据段,知道TCP标记的端口80,说明应用层协议是HTTP,将TCP头去掉交给应用层,并告知是HTTP数据
。应用层发送方情求的是HTTP数据,调用Web服务器程序,把www。xxx.com的首页文件发送回去
五、小脑袋,大疑问
应用层
传输层
网络层
链路层
术语
上述内容如有侵权,联系即删。
感谢阅读-感谢支持