일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux
- db
- mybatis
- SQL
- java
- Javascript
- oracle
- 이클립스
- Eclipse
- Redis
- 톰캣
- 모바텀
- IntelliJ
- svn
- 오라클
- 디비버
- 마이바티스
- 자바스크립트
- HTTP
- JSON
- Tomcat
- 보안
- Server
- git
- 자바문법
- 자바
- 상태코드
- JQuery
- 인텔리제이
- DBeaver
- Today
- Total
JongTachi의 개발 블로그
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_2 본문
3-9 목적지는 하나? 아니면 여러 개?
데이터를 전송하는 주소의 차이
IP로 데이터를 전송할 때, 목적지가 하나든 여러개든 상관없다. 목적지가 1개인지, 그렇지 않으면 여러 개인지에 따라 데이터 전송 방식을 3가지로 분류할 수 있다.
1) 유니캐스트
한 곳으로 데이터를 전송하는 것을 유니캐스트라 한다. 유니캐스트 데이터 전송에는 목적지 호스트의 유니캐스트 IP주소를 IP헤더으 목적지 IP 주소로 지정한다. 완전히 같은 데이터를 복수의 주소로 전송하고 싶을 때는 출발지에서 목적지 수만큼 유니캐스트 데이터 전송을 반복하면 되지만, 효율이 좋지않다. 그래서 완전히 같은 데이터를 복수의 주소로 효율적으로 전송하기 위해 브로드캐스트와 멀티캐스트를 사용한다.
2) 브로드캐스트
브로드캐스트란 같은 네트워크 상의 모든 호스트에 완전히 똑같은 데이터를 전송하는 것이다. IP 헤더의 목적지 IP 주소에 브로드캐스트 IP 주소를 지정하면, 같은 네트워크 상의 모든 호스트에 데이터를 전송할 수 있다.
3) 멀티캐스트
같은 애플리케이션이 동작하는 등 특정 그룹에 포함되는 호스트에 완전히 똑같은 데이터를 전송하는것을 멀티캐스트라한다.
3-10 IP 주소의 구성은 크게 나눠 두 가지
1) 유니케스트 IP 주소의 구성
TCP/IP 통신의 대부분은 유니캐스트이다. IP 주소는 네트워크부와 호스트부라는 두 개의 부분으로 구성된다. 사내 네트워크와 인터넷 등은 복수의 네트워크가 라우터 또는 레이어3 스위치로 서로 연결되어 있다. IP 주소의 전반의 네트워크부를 이용해 각 네트워크를 식별한다.
2) 브로드캐스트 IP 주소
같은 네트워크에 있는 모든 호스트에 일괄적으로 데이터를 전송할 때 이용하는 브로드캐스트 IP 주소는 32bit가 모두 '1'인 주소이다. 도트형 10진 표기로는 '255.255.255.255'가 브로드캐스트 IP 주소이다.
3) 멀티캐스트 IP 주소
멀티캐스트 IP 주소로서 '244.0.0.0 ~ 239.255.255.255'로 범위가 정해져 있다. 이 범위 중 미리 정해져 있는 멀티캐스트 IP 주소가 있다.
3-11 IP 주소의 범위 구분
1) 서브넷 마스크란?
IP 주소는 전반의 네트워크부와 후반의 호스트부로 구성된다. 여기서 알아둬야할 것은 네트워크부와 호스트부의 구분은 고정된 것이 아니라 가변적이다. 32비트 IP 주소의 어디까지가 네트워크부인지 명시한 것이 서브넷 마스크이다. 서브넷 마스크는 IP 주소처럼 32비트이므로 '0'과 '1'이 32개 나열된다.
'1'은 네트워크부를 나타내며 '0'은 호스트 부분을 나타낸다. 서브넷 마스크는 반드시 연속한 '1'과 연속한'0'으로 되어있지 서로 교대로 나타나는 서브넷 마스크는 없다.
서브넷 마스크는 8빝씩 10진수로 변환하고 '.'으로 구분해 표시한다.
/ 뒤에 연속한 '1'의 개수로 표기하는 경우도 있다. 이 방식은 프리픽스 표기라고 부른다. 원칙적으로 192.168.1.1 255.255.2550 또는 192.168.1.1/24 처럼 IP 주소에는 서브넷 마스크를 병기해서 네트워크부와 호스트부를 명확하게 구분한다.
2) 네트워크 주소와 브로드캐스트 주소
IP 주소 후반 호스트부를 모두 비트 '0'으로 채우면, 네트워크 자체를 식별하기 위해 이용하는 네트워크 주소가 된다.
호스트부를 모드 비트 '1'로 채우면 브로드캐스트 주소가 된다.
3-12 네트워크에 접속하는 두 단계
1) 물리접인 접속과 논리적인 접속
네트워크에 접속할 때는 물리적인 접속과 논리적인 접속 두 개의 단계가 있다. TCP/IP의 계층으로 말하면, 물리적인 접속은 네트워크 인터페이스층이고, 논리적인 접속은 인터넷층이다.
- 물리적인 접속 : 물리적인 신호를 주고받을 수 있게 하는 것이다. 구체적으로는 이더넷의 인터페이스에 LAN 케이블을 삽입하거나 무선 LAN 엑세스 포인트에 접속하거나 휴대전화 기지국의 전파를 포착하는 등의 일이다
- 논리적인 접속 : 물리적으로 접속이 이루어진 후에, 논리적인 접속으로서 IP 주소 설정도 필요해진다. 현재는 TCP/IP를 네트워크의 공통 언어로 사용하고 있고, TCP/IP에서는 IP 주소를 지정하여 통신한다. 하지만 이런 IP 주소 설정은 IT 기술에 익숙하지 않은 사용자들에게는 어려울 수 있다. 그래서 DHCP 등의 기술로 자동으로 설정하게 하고, 사용자에게 IP 주소 설정을 의식하지 않게 하는 겨웅가 많다. 즉 LAN 케이블을 꽂아 물리적인 접속이 완료되면, 자동으로 논리적인 접속도 완료할 수 있게 한다.
3-13 인터넷에서 사용하는 주소와 사설 네트워크에서 사용하는 주소
1) IP 주소의 이용 범위
IP 주소는 이용 범위에 따라, 공인 IP 주소와 사설 IP 주소 2가지로 분류된다. 인터넷에서 통신하기 위해서는 반드시 공인된 주소가 필요하다. 공인 주소는 멋대로 사용할 수 있는 게 아니다. 인터넷에 접속하기 위해 인터넷 접속 서비스를 계약하면, 공인 주소가 할당된다.(인터넷 접속 서비스에 따라 공인주소가 할당 되지 않는 경우도 있다)
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
이 범위의 주소는 사설네트워크 안이라면 자유롭게 이용할 수 있다. 다른 네트워크의 사설 주소가 겹치더라도 사설 네트워크 안의 통신에는 전혀 문제가 없다.
3-14 사설 네트워크에서 인터넷으로의 통신
1) 사설 주소 그대로는 응답이 돌아오지 않는다.
사설 네트워크에서는 인터넷에 바로 통신할 수 없다. 사설 네트워크의 PC에서 인터넷의 서버에 요청을 보내면, 목적지는 공인 주소이고 출발지는 사설 네트워크이다. 이때 요청은 서버로 문제없이 보낼 수 있다.
하지만 서버에서 응답을 돌려 보낼 때는 목적지가 사설 네트워크이고 출발지는 공인 네트워크일 때 응당은 돌아오지 않는다. 이유는 인터넷에서는 목적지가 사설주소로 된 IP 패킷은 반드시 폐기 되어 버리기 때문이다.
2) 주소를 변환한다.
사설 네트워크에선 인터넷으로 통신하기 위해 NAT으로 주소를 변환한다.
- 사설 네트워크에서 인터넷으로 요청을 전송시, 출발지 IP주소를 변환.
- 라우터는 나중에 원래대로 돌리기 위해 벼노한한 주소의 대응을 NAT 테이블에 보존해둔다.
- 요청에 대한 응답이 라우터로 돌아오면, 목적지 IP 주소를 변환한다. 이때 NAT 테이블에 보존해 둔 주소의 대응을 이용한다.
사설 주소와 공인 주소를 1대1로 대응시키려면 많은 공인 주소가 필요하다. 복수의 사설 주소를 하나의 글로벌 주소에 대응시키는 주소 변환을 NAPT(Network Address Port Translation)이라고 부른다.
3-15 데이터가 목적지에 잘 도착했을까?
1) IP는 확인하지 않는다.
IP로 데이터를 다른 호스트에 전송하지만, IP에는 제대로 도착했는지 확인할 방법이 없다. 전송하고 싶은 데이터에 IP 헤더를 붙여 IP 패킷으로 만들어 네트워크 상에 내보내기만 할 뿐이다. 목적지까지 도달하면 그 응답이 돌아오지만, 목적지에 도달하지 않았다면 아무런 응답이 오지 않는다(도달하지 못한 이유도 알 수 없음). 즉 '데이터를 보내기 위해 최선을 다했겠지만, 안 되도 어쩔 수 없지'라는 것이 IP의 특징이다. 그래서 별도로 IP에 의한 엔드투엔드 통신이 정상적으로 이루어졌는지 확인하는 기능인 ICMP가 개발되었다.
2) ICMP(Internet Control Message Protocol)의 기능
- 에러 리포트
- 진단 가능
어떠한 이유로 IP 패킷을 폐기 했다면, 도달불능 메세지로 엔드투엔드 통신에 실패한 원인을 통지한다. 진단 기능은 IP의 엔드투엔드 통신이 가능한지 확인하는 기능이다. 진단을 위해서 매우 자주 이용하는 명령으로 ping 커맨드가 있다. ping 커맨드로 ICMP 에코 요청/응답 메세지를 보내서, 지정한 IP 주소와 통신할 수 있는지 확인한다.
3-16 IP 주소와 MAC 주소를 대응시킨다.
MAC 주소 : 컴퓨터 간 데이터를 전송하기 위해 있는 컴퓨터의 물리적인 주소(맥북 주소 이딴 거 아니니 오해하지말자)
1) ARP란?
TCP/IP에서는 IP 주소를 지정해서 데이터(IP패킷)를 전송한다. IP 패킷은 PC나 서버 등의 인터페이스까지 전송된다. PC나 서버 등의 인터페이스는 MAC 주소로 식별한다. IP주소와 인터페이스를 식별하기 위한 MAC 주소를 대응시키는 것이 ARP의 역할이다.
이더넷 인터페이스에서 IP 패킷을 내보낼 때는 이더넷 헤더를 덧붙인다. 이더넷 헤더는 목적지 MAC 주소를 지정해야만 한다. 목적지 IP 주소에 대응하는 MAC 주소를 구하기 위해서 ARP를 이용한다. 또한, IP 주소와 MAC 주소를 대응시키는 것을 가리켜 주소 해석이라고 한다.
2) ARP 동작의 흐름
ARP로 주소를 해석한다는 것만 알아두자. 흐름 동작은 다음과 같다.
- ARP 요청으로 IP 주소에 대응하는 MAC 주소를 질의한다.
- 질의받은 IP 주소를 가진 호스트가 ARP 응답으로 MAC 주소를 알려준다.
- 주소 해석한 IP 주소와 MAC 주소의 대응을 ARP 캐시에 보존한다.
'Network' 카테고리의 다른 글
[Network] telnet, ipconfig 안 될 때(telnet client) (0) | 2023.06.23 |
---|---|
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_3 (0) | 2022.11.14 |
3. 네트워크의 공통 언어 TCP/IP (네트워크의 공동 규칙).Chapter_1 (0) | 2022.05.24 |
2. 네트워크를 만드는 것 (0) | 2022.05.16 |
1. Network의 기본 (0) | 2022.05.15 |