今天学习了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下载网络资源

最新文章

  1. C++开始前篇,深入编译链接(补充1)
  2. postgresql 中replace 函数
  3. 40、dom以xml结尾的文件
  4. 使用JSSDK集成微信分享遇到的一些坑
  5. mysql 更改默认数据目录
  6. 简易qq对话框
  7. 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(四)授权代码维护
  8. 【转】HADOOP HDFS BALANCER介绍及经验总结
  9. django中request对象详解(转载)
  10. 读convolutional Neural Networks Applied to House Numbers Digit Classification 的收获。
  11. Mysql执行Update操作时会锁住表
  12. Uva 10007 / HDU 1131 - Count the Trees (卡特兰数)
  13. VC++的文件格式详解
  14. icon font
  15. iOS Dev (59) 高度自适应的UITextView
  16. 将 JSP 中数组传递给 js
  17. c刷题
  18. 第四百零六节,自定义用户表类来继承Django的用户表类,
  19. 大数据入门第二十二天——spark(三)自定义分区、排序与查找
  20. Windows XP Manifest in Delphi

热门文章

  1. MySQL CREATE TABLE 简单设计模板交流
  2. Django 之 modelForm (edit.html页面的编写)
  3. 后端跨域问题究极解决 nginx+springboot 解决OPTIONS通过却报CORS的问题
  4. luoguP4859 已经没有什么好害怕的了(二项式反演)
  5. CF1225E Rock Is Push (计数)
  6. 羽夏看Win系统内核——结语
  7. 通过R Studio用Markdown写Beamer
  8. 什么是 YAML?
  9. jQuery--内容过滤和可见性过滤
  10. Springmvc入门基础(四) ---参数绑定