IT/영어 공부노트
네트워크의 공통 언어 TCP/IP - 3(프로토콜) 본문
<그림으로 배우는 네트워크 원리> 책을 읽고 정리한 내용으로,
개인 공부 정리 포스팅입니다.
☁ 3-14 NAT
NAT(Network Address Translation)
- 사설 네트워크에서 인터넷으로 요청을 전송할 때, 출발지 IP 주소를 변환한다.
- 라우터는 나중에 원래대로 되돌리기 위한 변환의 주소의 대응을 NAT 테이블에 보존한다.
- 요청에 대한 응답이 라우터에 돌아오면 목적지 IP주소를 변환하는데, 이 때 NAT 테이블에 보존해둔 주소의 대응을 이용한다.
NAPT(Network Address Port Translation)
복수의 사설 주소를 하나의 글로벌 주소에 대응시키는 주소 변환이다.
☁ 3-15 ICMP
IP로 데이터를 다른 호스트에 전송하지만, IP에는 맞게 도착했는지 확인할 수 없다. 이런 IP를 위해 엔드투엔드 통신이 정상적으로 이루어졌는지 확인하기 위한 프로토콜인 ICMP가 있다.
- 에러리포트: 통신 실패한 원인을 통지
- 진단 기능: IP의 엔드투엔드 통신이 가능한지 확인하는 기능
- ping 커맨드로 요청/응답 메시지를 보내, 지정한 IP 주소와 통신할 수 있는지 확인한다.
☁ 3-16 ARP
ARP란?
IP 패킷은 PC나 서버 등의 인터페이스까지 전송되어 가는데, PC나 서버 등의 인터페이스는 MAC 주소로 식별한다. TCP/IP의 IP 주소와 인터페이스를 식별하기 위한 MAC 주소를 대응시키는 것이 ARP이다.
ARP의 주소 해석 범위는 같은 네트워크 내의 IP 주소이다. 이더넷 인터페이스로 접속된 기기가 IP 패킷을 송신하고자 목적지 IP 주소를 지정할 때, 자동으로 ARP가 수행된다.
- ARP 요청으로 IP 주소에 대응하는 MAC 주소를 질의한다.
- 질의받은 IP 주소를 가진 호스트가 ARP 응답으로 MAC 주소를 알려준다.
- 주소 해석한 IP 주소와 MAC 주소의 대응을 ARP 캐시에 보존한다.
☁ 3-17 포트번호
포트번호란?
애플리케이션에 데이터를 배분하기 위해선 각각의 애플리케이션을 식별할 수 있어야 하는데, 이 때 포트번호를 이용한다.
포트번호: TCP/IP의 애플리케이션을 식별하는 식별번호로, 이 뒤에 설명할 TCP나 UDP 헤더에 지정한다. 포트번호는 16비트로 0~65535까지 이다.
- 웰노운 포트번호
- 등록된 포트
- 동적/사설 포트
HTTP | 80 |
HTTPS | 443 |
SMTP | 25 |
POP3 | 110 |
IMAP4 | 143 |
FTP | 20/21 |
☁ 3-18 TCP
TCP란?
TCP는 신뢰성이 있는 애플리케이션 간의 데이터 전송을 하기 위한 프로토콜이다.
TCP에 의한 데이터 전송 절차
- TCP 커넥션 맺기
- 애플리케이션 간 데이터 송수신
- TCP 커넥션 끊기
☁ 3-19 시퀀스 번호, ACK 번호
TCP로 전송하고 싶은 애플리케이션의 데이터에 TCP 헤더를 추가해, TCP 세그먼트라고 한다.
포트번호: 포트번호로 적절한 애플리케이션 프로토콜에 데이터를 배분할 수 있다.
시퀀스 번호(Sequence Number): TCP로 전송하는 데이터 순서로, 데이터가 분할되어 있는 경우 시퀀스 번호로 어떻게 데이터를 분할했는지 알 수 있다.
ACK번호(Acknowledge Number): ACK 번호는 데이터를 바르게 수신했음을 확인하기 위해 이용한다.
TCP에는 데이터를 분할하는 기능도 있는데, TCP에서 애플리케이션의 데이터를 분할하는 단위는 MSS(Maximum Segment Size)라고 부른다. MSS의 표준 크기는 1460 바이트이다.
☁ 3-20 UDP
UDP는 PC나 서버 등에 도달한 데이터를 적절한 애플리케이션에 배분하는 기능만 있는 프로토콜이다.
장점
- 데이터 전송 효율이 좋음
단점
- 신뢰성이 낮음
- 크기가 큰 데이터를 분할하는 기능이 없음
☁ 3-21 DNS
TCP/IP로 통신할 때에는 통신 상대방의 IP 주소를 반드시 지정해야 한다.
애플리케이션이 동작하는 서버는 클라이언트 PC 등의 호스트에 사용자가 이해하기 쉬운 이름인 호스트명을 붙인다. 사용자가 URL 등으로 애플리케이션의 주소를 지정하면, 호스트 이름에 대응하는 IP 주소를 자동으로 구하는 것이 DNS의 역할이다.
호스트명에서 IP주소를 구하는 방법을 이름해석이라 하는데, DNS는 가장 자우 이용되는 이름해석 방법이다.
☁ 3-22 DNS로 IP주소를 자동으로 구한다
DNS를 이용하려면 DNS 서버가 필요한데, DNS 서버에 미리 호스트명과 IP주소의 대응관계 등의 여러 정보를 미리 등록하는데, 이를 리소스 레코드라 한다.
종류 | 의미 |
A | 호스트명에 대응하는 IP주소 |
AAAA | 호스트명에 대응하는 IPv6주소 |
CNAME | 호스트명에 대응하는 별명 |
MX | 도메인명에 대응하는 메일 서버 |
NS | 도메인명을 관리하는 DNS 서버 |
PTR | IP주소에 대응하는 호스트명 |
DNS의 이름 해석
DNS 서버에 필요한 정보를 바르게 등록하는 것이 대전제이다. DNS 서버는 루트를 정점으로 한 계층 구조로 되어 있다.
애플리케이션이 동작하는 호스트에는 DNS 서버의 IP주소를 설정해둔다.
애플리케이션을 이용하는 사용자가 호스트 이름을 지정하면, 자동으로 DNS 서버에 대응하는 IP 주소를 질의한다.
DNS 서버에 질의하는 기능은 OS에 내정되어 있고, DNS 리졸버라 부른다.
자신이 관리하는 도메인 외의 호스트명을 찾으려면 루트에서부터 여러번 질의를 반복해야 한다. 이를 재귀질의라 한다.
☁ 3-23 DHCP
DHCP는 TCP/IP설정을 자동화하는 프로토콜이다.
DHCP의 통신은 브로드캐스트를 이용하는데, DHCP 클라이언트는 자신의 IP주소와 DHCP 서버의 IP주소도 모른다.