IP地址、端口、TCP协议、UDP协议
最近在看《疯狂java讲义》,第17章网络编程里提到IP地址、端口、TCP协议、UDP协议这几个概念。以前上课时学过,现在重温了一遍。在这里,用自己的语言简单的讲解一下吧。
IP地址:每一台能上网的设备(电脑、手机等)都具有一个IP地址,这个地址是唯一的,相当于一个人的身份证号码。通过这个IP地址,我能准确的找到你,而你也能轻易的发现我。然后我俩做些不可描述的事。
端口:在一台标识有IP地址的电脑里,有很多的软件,比如说腾讯QQ、迅雷等。这些软件需要经过IP地址才能接入互联网,但是软件有很多个,IP地址是唯一的。那如何区分这些软件呢?端口号出现了。每一个软件都有一个唯一的端口号,通过端口号+IP地址即可准确的找到这个软件并与之进行通信。
TCP协议:这是一种端到端的协议,可以提供可靠并且无差错的通信服务。比如说:有两台电脑需要进行通信,有了TCP的加持,就可以在这两台电脑间建立一条用于发送和接收数据的链路。在每一次发送数据后,接收数据方都会返回一个确认信息,告知发送方是否成功接收到,若否,则重发数据。
UDP协议:与TCP协议相反,UDP协议是一种不可靠的网络协议。比如说:有两台电脑需要进行通信,有了UDP的加持,只需要在两台电脑上各放置一个Socket,无需建立链路,即可发送和接收数据。每一次发送数据后,接收方不会返回确认信息。收到是幸运,未收到也没辙。
TCP协议和UDP协议的区别在于:前者可靠,后者不可靠;前者需建立连接,后者不需建立连接;前者开销大,后者开销小。
IP地址、端口、TCP协议、UDP协议的更多相关文章
- TCP/IP协议---UDP协议
UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都产生一个UDP数据报,并组装成一份待发送的IP数据报.UDP数据报是要依赖IP数据报传送的.UDP协议并不可靠,它不能保证发出去的包会被目 ...
- tcp和udp协议的聊天 和udp协议的时间同步机制-----编码
tcp协议聊天 服务端:: 客户端 udp协议的聊天 ############ udp协议 ########### 服务器 import socket sk = socket.socket(type ...
- python 网络编程 tcp和udp 协议
1. 网络通信协议 osi七层,tcp\ip五层 tcp\ip五层 arp协议:通过IP地址找到mac地址 2.tcp和udp的区别 tcp协议:面向连接,消息可靠,相对udp来讲,传输速度慢,消息是 ...
- 面试:TCP和UDP协议
目录 TCP 协议 UDP协议 TCP和UDP的区别 TCP和UDP的使用场景 一 TCP协议 1.TCP的头部格式 理解TCP协议,首要的就是TCP协议的头部格式 · Source P ...
- TCP 和 UDP 协议
TCP 和 UDP 协议 一.socket层 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐 ...
- iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链
iptables常用规则:屏蔽IP地址.禁用ping.协议设置.NAT与转发.负载平衡.自定义链 时间 -- :: IT社区推荐资讯 原文 http://itindex.net/detail/4772 ...
- 深入浅出TCP与UDP协议
深入浅出TCP与UDP协议 网络协议是每个前端工程师的必修课,TCP/IP协议族是一系列网络协议的总和,而其中两个具有代表性的传输层协议,分别是TCP与UDP,本文将介绍这两者以及他们之间的区别. 一 ...
- 基于TCP与UDP协议的socket通信
基于TCP与UDP协议的socket通信 C/S架构与初识socket 在开始socket介绍之前,得先知道一个Client端/服务端架构,也就是 C/S 架构,互联网中处处充满了 C/S 架构(Cl ...
- Python网络编程02 /基于TCP、UDP协议的socket简单的通信、字符串转bytes类型
Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes类型 目录 Python网络编程02 /基于TCP.UDP协议的socket简单的通信.字符串转bytes ...
- 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议
软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...
随机推荐
- JavaScript中两个对象数组 属性undefined
var BaiduUsers = []; var UserArray = function(name, phone, id, id2) { this.name = name; this.phone = ...
- Android Studio使用手记
1.官方的Tip and Tricks:http://developer.android.com/intl/zh-cn/sdk/installing/studio-tips.html 2.项目的目录树 ...
- Spark核心编程---创建RDD
创建RDD: 1:使用程序中的集合创建RDD,主要用于进行测试,可以在实际部署到集群运行之前,自己使用集合构造测试数据,来测试后面的spark应用流程. 2:使用本地文件创建RDD,主要用于临时性地处 ...
- JavaScript中push ,pop ,concat ,join方法
push 方法 将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2[. . . [itemN ]]]]) 说明 push 方法将以新元素出现的顺序 ...
- python 要掌握面向对象,你得会做这些题吗?
1,面向对象三大特性,各有什么用处,说说你的理解. 继承:解决代码重用问题 多态:多态性,可以在不考虑对象类型的情况下而直接使用对象 封装:明确的区分内外,控制外部对隐藏属性的操作行为,隔离复杂度 2 ...
- asp.net路径问题
-------------初级篇---------------------------------------- 在一般的href中路径的引用问题 ./index.aspx与index.aspx都 ...
- 16.git命令汇总
- Xamarin.Android 使用百度地图获取定位信息
最近做一个项目,web端使用百度地图,PDA使用手持机自带的GPS定位系统获取经纬度,然后再百度地图上显示该经纬度会有一定距离的差异,这里就像可乐的瓶子拧上雪碧的盖子,能拧的上却不美观.所以为了数据的 ...
- PAT1115:Counting Nodes in a BST
1115. Counting Nodes in a BST (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Y ...
- redis Web服务器
redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...