일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Android
- service
- activity
- data
- Java
- insert
- IntelliJ
- 백준
- 데이터전달
- 알고리즘
- Algorithm
- intent
- ubuntu
- 큐빙
- 두 동전
- 단축키
- 프로그래머스
- 17837
- mysql
- goland
- github
- broadcastreceiver
- 16197
- Jenknis
- git
- 데이터
- vscode
- 제어반전
- 안드로이드
- spring
- Today
- Total
해보자
[Network] TCP/IP? 본문
내 컴퓨터에서 TCP/IP 확인하기
내 PC의 네트워크 상태보기를 해보면 로컬 영역 연결이 되어있는 것을 확인할 수 있다.
(무선 네트워크는 무선 네트워크로 나온다.)
인터넷을 사용하기 위한 TCP/IP 프로토콜을 확인할 수 있다.
TCP/IP?
-
인터넷을 사용하기 위해 꼭 필요한 프로토콜
-
Transmission Control Protocol / Internet Protocol 의 약자.
-
ARPANET에 의해서 처음 개발되었다.
-
각각의 네트워크에 접속되는 호스트들은 고유 주소를 가지고 있어서 자신이 속해 있는 네트워크 뿐 아니라 다른 네트워크에 연결되어 있는 호스트까지도 서로 데이터를 주고받을 수 있또록 만들어져있는 것이 특징이다.
이 때 사용하는 호스트들의 고유 주소는 Internet Network Inforamtion Center(InterNIC)이란 단체에서 관리 분배되고 있다.
-
자주 사용되는 TCP 포트
서비스
TCP포트
FTP
21(제어용), 20(데이터용)
SSH
22
Telnet
23
SMTP
25
DNS
53(UDP도 53)
HTTP 80
TCP 동작 시나리오
사용자 A가 server.com홈페이지에 들어가서 file.pdf파일을 다운로드 받을 때 TCP프로토콜 단에서 송수신하는 상황
- 응용 계층 데이터 : HTTP프로토콜에 따라 사용자 A의 컴퓨터에 있는 웹 브라우저와 server.com 웹서버 프로그램이 생성하게 된다.
- pdf 파일과 같이 많은 양의 데이터가 한번에 전송되는 경우에는 여러 네트워크 경로로 IP패킷이 전달될 수 있어서 TCP흐름 제어가 중요하다.
- 네트워크 경로상의 호스트나 선로에 의해 발생하는 전송 오류에 대처하기 위한 오류 제어도 중요하다.
- 네트워크 단위 시간에 처리 가능한 용량보다 많은 패킷이 전송될 수 있는데, 이를 제어하기 위해서는 혼잡 제어도 중요하다.
- my.pdf = file.pdf ....
IP주소
- 인터넷을 제대로 사용하기 위해서 전 세계에서 유일하게 나만이 갖는 주소가 필요하다. : IP주소
- 공인된 IP주소를 관리하고 나눠주는 기관 : NIC(Network Information Center)
인터넷을 쓰는 사람이라면 누구나 하나씩 갖고 있어야 하는 IP주소는 전 세계에서 유일하게 나만이 가지고 있는 것이다. 다시 말해 전 세계에서 인터넷을 사용하는 모든 사람은 모두 서로 다른 IP주소를 가지고 있다는 얘기다.
만약 나 말고 다른 사람이 똑같은 IP를 쓴다면 어떻게 될까? IP주소가 서로 충돌하기 때문에 둘 중 하나는 인터넷을 못쓰는 결과를 가져올 것이다.
하지만 각기 다른 IP주소를 사용한다는 것이 사용자가 늘어나면서 점점 더 힘들어지고 있다. 따라서, 요즘에는 내부 네트워크에서는 공인되지 않은 IP주소를 사용하고, 인터넷으로 나갈 때만 공인주소(유일한 IP주소)를 가지고 나가는 방식인 NAT(Network ADdress Translation)나 동일한 IP주소를 가지고 여러 명이 인터넷에 접근하면서 포트 넘버만을 바꾸는 PAT 등이 사용되고 있다.
IPv4
IP주소의 모양
192.168.1.100
4자리의 10진수로 되어있고 중간에 점을 하나씩 찍었다. 한 자리가 최소 0~255까지 가능하다. IP주소는 이진수로 만들어져있다.
따라서 IP주소는 8bits * 4 = 32bits로 만들어진다. 따라서, 2^32개 만큼 만들 수 있다.
클래스기반 IP 분류
클래스 |
주소 |
내용 |
A |
1.0.0.0 ~ 126.0.0.0 |
네트워크ID : 최초 octet 호스트 ID : 마지막 3개 octet 디폴트 서브넷 마스크 : 255.0.0.0 |
B |
128.0.0.0 ~ 191.255.0.0 |
네트워크ID : 처음 2개 octet 호스트 ID : 마지막 2개 octet 디폴트 서브넷 마스크 : 255.255.0.0 |
C |
192.0.0.0 ~ 223.255.255.0 |
네트워크ID : 처음 3개 octet 호스트 ID : 마지막 1개 octet 디폴트 서브넷 마스크 : 255.255.255.0 |
D |
224.0.0.0 ~ 239.0.0.0 |
다중 전송 주소 |
E |
240.0.0.0 ~ 255.0.0.0 |
실험적으로 사용 |
특수 IPv4 주소
NetworkID / Host ID |
주소 이름 |
용도 |
127.x.x.x |
Local loopback address |
|
255.255.255.255 |
Limited broadcast |
|
0.0.0.0 |
this host on this network |
|
- IP주소의 요소
- 인터넷에 연결된 모든 통신망과 그 통신망에 연결된 컴퓨터에 부여되는 고유의 식별 주소인 IP주소.
- 동일한 물리적 네트워크에 존재하는 TCP/IP호스트를 구분하는 네트워크 ID
- 네트워크에서 TCP/IP 호스트를 구분하는 호스트 ID
- 호스트 이름으로부터의 IP주소지에 대한 네트워크 이름을 규정하는 서브넷마스크
IPv6
- IPv4의문제를 해결하고자 개발된 프로토콜.
- 문제 : 네트워크에 연결된 호스트와 단말이 급증하면서 IP주소 공간 부족과 함께 취약한 인터넷 보안 문제 발생.
- 128bits
- 헤더 필드 제거
- 보안과 개인 보호 기능을 추가(Ipsec별도 설치 X, 종단간 암호화 기능을 제공.)
사설네트워크
개인적으로 원하는 네트워크를 쉽게 구성할 수 있고, 사설 주소 공간에 있는 IPv4주소는 개인적으로 할당하여 사용 가능.
NAT(Network Address Translation)
- 사설 네트워크와 공용 인터넷을 연결하여 사용할 수 있음.
- 사설 주소와 범용 주소의 매핑 정보를 제공하고 도시에 가상 사설 네트워크를 지원하는 기술.
- 인터넷 네트워크 방화벽의 핵심 기술
- 사설 주소의 재사용 개념에 근간한 것. 이를 라우터에 구현함으로써 라우터는 각 포트에서 데이터를 받아 NAT매핑규칙에 따라 IP패킷의 발신지 IP주소 필드를 고유한 공인 IP주소로 변환하여 전송.
CIDR(Classless Inter-Domain Routing)
- 클래스 없는 도메인간 라우팅 기법
- IP주소의 영역을 여러 네트워크 영역으로 나눌 떄 기존의 클래스 기반 방식에 비해 보다 유연하게 지정할 수 있음.
- 표기법 : "IP주소/접두사 크기"
Reference
후니의 쉽게 쓴 시스코 네트워킹, 진강훈 / 성안당