一、计算机网络介绍
1.计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备、通过通信线路连接起来,在网络操作
系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
2. 计算机网络分类
虽然网络类型的划分标准各种各样,但是从地理范围划分是一种大家都认可的通用网络划分标准,按这种标准可以
把各种网络类型划分为局域网、城域网、广域网三种:
- 局域网:一般来说就是在一个较小区域内。
- 城域网:是不同地区的网络互连,不过在此说明的一点就是这里的网络划分并没有严格意义上地理范围的区分,只能是一个定性的概念。
3.网络参考模型(OSI参考模型,开放系统模型,Open System Interconnection)
该模型定义了不同的计算机互联的标准,是设计和描述计算机网络通信的框架。
这里对OSI七层模型做一下简单了解:
OSI中的层 | 功能 | TCP/IP协议族 |
应用层 | 文件传输、电子邮件、文件服务、虚拟终端 | TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet等 |
表示层 | 数据格式化、代码转换、数据解密 | 没有协议 |
会话层 | 解除或建立与别的接点的联系 | 没有协议 |
传输层 | 提供端到端的接口 | TCP、UDP |
网络层 | 为数据包选择路由 | IP、ICMP、OSPF、EIGRP、IGMP |
数据链路层 | 传输有地址的帧以及错误检测功能 | SLIP、CSLIP、PPP、MTU |
物理层 | 以二进制数据形式在物理媒体上传输数据 | ISO2110、IEEE802、IEEE802.2 |
4.TCP/IP协议
TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族,在TCP/IP协议中,最重要的是协议
是TCP、UDP、IP协议。
Tcp协议(Tranmission Control Protocol)
TCP是基于面向连接的协议,也就是说,在正式收发数据之前,必须和对方建立可靠的连接。
TCP协议建立连接需要三次会话(A->B、B->A、A->B)
特点:面向连接、安全可靠、效率相对较低、数据大小无限制
UDP协议(User Datagram Protocol)
UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口信息,由于通讯不需要连接,所以可以
实现广播发送。
UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员变成验证。
特点:无连接、可靠性不高、效率高、每次最大传输64KB。
IP协议
IP的责任就是把数据从源传送到目的地,它不负责保证传送的可靠性,流控制,包顺序和其它对于主机到主机协议来说是很普通的服务。
IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其他设备都规定了一个唯一的地址,叫做"IP地址"。
IP地址(Internet Protocol):唯一标识网络上的每一台计算机
IP地址的组成:32位,由4个8位二进制数组成
A类IP地址:8位网络地址+24位主机地址(前8位地址:1-126);
B类IP地址:16位网络地址+16位主机地址(前8位地址:128-191);
C类IP地址:24位网络地址+8位主机地址(前8位地址:192-255);
127.0.0.1:本机地址,
查看IP地址,检测网络是否畅通
- 查看本机的IP地址:ipconfig;
- 测试网络为:ping 目标IP地址;’
5.端口号
端口号:具有网络功能的应用软件的标识号。
- 端口是一个软件结构,被客户程序或服务程序用来发送和接收数据,一台服务器有256*256个端口,
- 0-1023是公认端口号,即已经公认定义或将要公认定义的软件保留。
- 1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。
- 端口与协议有关:TCP和UDP的端口互不相干。
二、终于引入到了套接字(Socket)
Socket(套接字):
- 通信链路的端点就被称为“套接字”;
- 是提供给应用程序的接口;
- 两个应用程序可以通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket。
- Socket可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Sokcet
将这段信息发送给另外一个Socket中,使这段信息能传送其他程序中。
- Socket通常用来实现client-server(客户端-服务器)连接,建立连接所需的存址信息为远程计算机的IP地址和
端口号(Port Number)。
网络编程的四个基本步骤:
- 创建Socket;
- 打开连接到Socket的输入/输出流(通过Socket的getInputStream()和getOutputStream());
- 按照一定的协议对socket进行读/写操作;
- 关闭socket;
基于TCP协议的Sokcet编程
基于TCP协议的Socket网络通信
- 用来实现双向安全连接网络通信
- TCP Socket通常用来实现client-server连接,建立连接时所需的寻址信息为远程计算机的IP地址
和端口号(Port Number)
TCP SOCKET通信模型:进行网络通信时,Socket需要借助数据流来完成数据的传递工作。