【计算机网络-网络层】知识总结-快速入门

概念

网络层是介于传输层和数据链路层之间,传输层提供端到端的进程间通信服务,数据链路层的功能则是实现物理链路直接相连的两个节点之间的数据帧传输服务, 网络层则关注的是如何将承载传输层报文段的网络层数据报从源主机送达到目的主机

因为在大部分的网路环境下,绝大部分的数据报都要经过多个路由器才能从源主机送达到目的主机。因此网络层需要实现两项重要的功能:

1**.转 发:**当通过一条输入链路接收到一个分组后,路由器需要决策通过哪条输出链路将分组发送出去,并将分组从输入端口转发到输出端口。
2.**路由选择:**当分组从源主机流向目的主机是,必须通过某种方式决定分组经过的路由或者路径,计算分组所经过的路径的算法称为路由选择或者是路由选择算法。

TCP的基础是Socket,在TCP的链接中我们会使用到ServerSocket和Socket,那么,

2.Socket是什么?

Socket是应用层与TCP/IP协议簇通讯的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计都类似于黑盒子,实现者无需关心内部代码实现,只需使用Socket提供的API即可。

在这里插入图片描述
socket通讯流程简介

接下来我们用JAVA来实现基于TCP/IP协议的网络通讯:

既然是通讯,至少存在两个对象。我们在这里建立一个Server端,一个user端。

我们先来实现Server端代码:

在这里插入图片描述
务端代码1
在这里插入图片描述

服务端代码2
在这里插入图片描述
user端代码:(user端我们需要知道服务器端的IP地址)

user端1
在这里插入图片描述

user端2

代码实现很简单。下面我们说说几个注意事项:

第一:运行前,先运行服务器端,然后确定server端IP地址,user端根据IP才能找到对应的主机。

第二:端口号一定要相同。

第三:不管是Server端还是user端,用完资源一定要记得释放,养成良好的习惯。

第四:实现多人通讯,一般使用的方法就是建立线程池,或者服务器端添加多线程。

学习TCP协议的三次握手以及四次挥手,重点了解为什么要三次握手,为什么要四次挥手,在整个过程中状态是如何变迁的。(经典的状态图以及握手挥手图)

a.为什么要三次握手?不是一次,两次或者四次。我们来论证一下,如果只有一次会发生什么情况,a向b发起连接请求,假设b没收到,则b其实完全不知道a发起了请求,而a也完全不知道b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扯淡散人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值