面试的时候,面试官来了句给我说下网络协议有几层?那么IP协议在哪层?Socket是什么鬼? 分哪几种?TCP和UDP协议又在哪层?有什么区别...嗯,这...所以学习本篇概念性的理论还是很有 必要的!那么话不多说,开始本篇内容~

OSI是一个理想的模型,一般的网络系统只涉及其中的几层,在七层模型中,每一层都提供一个特殊 的网络功能,从网络功能角度观察:
- 下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能, 即以节点到节点之间的通信为主
- 第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;
- 上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。
简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
TCP/IP四层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。 TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层 (对应OSI的第四层)。TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供 的网络来完成自己的需求。这4层分别为:
- 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、 网络远程访问协议(Telnet)等。
- 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、 用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中, 这一层负责传送数据,并且确定数据已被送达并接收。
- 网络互连层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目 的主机(但不检查是否被正确接收),如网际协议(IP)。
- 主机到网络层:对实际的网络媒体的管理,定义如何使用实际网络 (如Ethernet、Serial Line等)来传送数据。
TCP/UDP区别讲解
1)IP地址

2)端口
1. 用于区分不同的应用程序
2. 端口号的范围为0-65535,其中0-1023未系统的保留端口,我们的程序尽可能别使用这些端口!
3. IP地址和端口号组成了我们的Socket,Socket是网络运行程序间双向通信链路的终结点, 是TCP和UDP的基础!
4. 常用协议使用的端口:HTTP:80,FTP:21,TELNET:23

3)TCP与UDP协议的比较
TCP/IP协议参考:https://jiayang.blog.youkuaiyun.com/article/details/110938448
TCP和UDP的区别:https://jiayang.blog.youkuaiyun.com/article/details/110938518
4.Java中对于网络提供的几个关键类:
针对不同的网络通信层次,Java给我们提供的网络功能有四大类:
- InetAddress: 用于标识网络上的硬件资源
- URL: 统一资源定位符,通过URL可以直接读取或者写入网络上的数据
- Socket和ServerSocket: 使用TCP协议实现网络通信的Socket相关的类
- Datagram: 使用UDP协议,将数据保存在数据报中,通过网络进行通信
本节我们只介绍前两个类,Socket与Datagram到TCP和UDP的章节再讲解!
demo:
public static void main(String[] args) throws Exception{
//获取本机InetAddress的实例:
InetAddress address = InetAddress.getLocalHost();
System.out.println("本机名:" + address.getHostName());
System.out.println("IP地址:" + address.getHostAddress());
byte[] bytes = address.getAddress();
System.out.println("字节数组形式的IP地址:" + Arrays.toString(bytes));
System.out.println("直接输出InetAddress对象:" + address);
}
效果图:

友情提示
本篇全是概念,看起来可能够呛的是吧,不过看不懂也没关系,知道七层模型每层叫 什么,大概拿来干嘛,还有TCP三次握手和四次挥手,就可以了!当然,这只是为了 应付面试~实际开发我们哪会纠结这个...直接Socket是吧~嗯
本文介绍了OSI七层模型与TCP/IP四层模型的基本概念,详细解释了各层的功能及TCP/IP模型中的关键协议,包括IP协议的位置、TCP与UDP的区别等,并简要提及Java中的网络编程相关类。
3398

被折叠的 条评论
为什么被折叠?



