Java学习day24
今天学习了IP地址、端口以及TCP/UDP通信协议
网络连接与过去的信件类似,需要知道对方的地址才能寄出去,在计算机网络中,我们的地址就是IP以及端口号
IP能用来唯一定位一台联网的计算机
本机的IP地址:127.0.0.1
IP地址有为IPv4和IPv6两种规格
IPv4:网际协议版本4,地址长度32位,4字节,大概有43亿左右,但是中国仅有4亿多,在2019年11月26日,全球所有的ipv4地址已经全部被占用
IPv6:互联网协议第6版,地址长度128位,16字节,地址数量号称可以为全世界的每一粒沙子编上一个地址
端口表示计算机上的一个程序的进程,不同进程有不同的端口号,用来区分软件;端口号被规定在0-65535;TCP/UDP端口的端口号也不同,即TCP协议下使用了8080端口号,UDP协议下还能使用8080端口号,但是同一种协议下,端口不能重复。
OIS七层模型图:
实际应用时并不会如此细分,而是使用TCP/IP四层模型:
TCP协议可以类比于我们日常打电话,连接比较稳定,有明显的客户端和服务端的区别,效率比较低,建立连接需要三次握手,断开连接需要四次挥手
三次握手:客户端首先向服务端发送连接请求,告知服务端,客户端要进行连接了;服务端再向客户端发送消息,表明收到了请求,你可以连接了;客户端再发送消息,表明我正式接入
四次挥手:客户端和服务端都可以发起中断连接请求,假设是客户端发起的;首先客户端要发送一条消息“客户端数据发送完全”;服务端要回应客户端的消息,告知对方我收到你消息了,并让客户端等待,检查服务端数据是否发送完全;服务端检查完全后给客户端发送消息“服务端数据发送完全,你可以断开了”;客户端回复“收到,我要关闭了”,服务端就可以中断连接了;客户端没有收到服务端回复也就关闭连接了
UDP协议类比于日常发送短信,只要知道对方的地址直接给对方发送就可以,对方会不会回复并不需要管
利用TCP协议实现消息传输:
明天学习UDP数据发送实现以及URL下载网络资源
最新文章
- C++开始前篇,深入编译链接(补充1)
- postgresql 中replace 函数
- 40、dom以xml结尾的文件
- 使用JSSDK集成微信分享遇到的一些坑
- mysql 更改默认数据目录
- 简易qq对话框
- 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护
- 【转】HADOOP HDFS BALANCER介绍及经验总结
- django中request对象详解(转载)
- 读convolutional Neural Networks Applied to House Numbers Digit Classification 的收获。
- Mysql执行Update操作时会锁住表
- Uva 10007 / HDU 1131 - Count the Trees (卡特兰数)
- VC++的文件格式详解
- icon font
- iOS Dev (59) 高度自适应的UITextView
- 将 JSP 中数组传递给 js
- c刷题
- 第四百零六节,自定义用户表类来继承Django的用户表类,
- 大数据入门第二十二天——spark(三)自定义分区、排序与查找
- Windows XP Manifest in Delphi