통신절차
데이터 교환 절차
- 실제 통신이 이루어지는 절차
- 패킷과 프레임의 교환 과정 이해
- IP Address / MAC Address / ARP의 이해
- Address Resolution Protocol(ARP)
- 실제 Local 통신에서는 MAC 주소가 필요함
- end to end 통신에서 IP를 사용하지만
- 인접 시스템간 통신에서는 MAC을 사용
- 통신하려는 IP 주소를 갖는 시스템의 MAC주소를 해결(알아야 함)
- ARP 요청은 Broadcast됨 --> 모든 Station이 수신
- ARP 응답은 Unicast임 --> MAC 주소 해결
MAC 주소
- IEEE 할당, 48비트(6 Bytes)
- 24비트는 제조 회사 할당, 24비트는 Serial Number
- 16진 표시
- 60-EB-69-83-74-D7 or 60:EB:69:83:74:D7
- 16진수 12개, 즉 옥텟 6개로 나타낸다
- MAC 주소 종류
- Broadcast
- 모든 Station이 수신하는 주소
- FF:FF:FF:FF:FF:FF(모든 비트가 1)
- IP Broadcast나 ARP 요청에서 사용됨
- Multicast
- 그룹에 가입한 Station 수신하는 주소 (즉. 특정 Station만 수신)
- Multicast IP를 가지고 만든다
- Unicast
- 특정한 하나의 스테이션 주소
- LAN 카드에 내장된 주소
패킷과 프레임 교환
패킷과 프레임 전달
- 데이터 전달은 컴퓨터와 컴퓨터, 컴퓨터와 라우터 간에 IP 패킷 전달을 통해 이루어짐
- 하나의 Station(IP를 sa, MAC을 SA라고 하자)이 인접한 다른 스테이션(IP를 da, MAC을 DA라고 하자)으로 패킷을 보내려 할 때
- 프레임을 만들어 패킷을 담아보내야 함
- 프레임을 만들 때는 목적지 MAC 주소(DA)와 발신자 MAC 주소(SA)가 필요
- 발신자 MAC 주소(SA)는 자신의 LAN 카드에 있음
- 목적지 MAC 주소(DA)를 알 수 있는 방안이 필요함
패킷과 프레임 구조
- IP packet
- MAC Frame(Ethernet)
- DA(6바이트)
- SA(6바이트)
- Type(2바이트)
- DATA(~1500바이트, IP packet에 해당하는 부분)
- FCS(4바이트)
ARP 동작
- 패킷을 보내려는 스테이션은 목적지 스테이션의 MAC주소를 찾는 ARP 요청 패킷을 방송(Broadcast)
- 연결된 모든 스테이션이 ARP 요청 패킷을 수신
- 목적지 스테이션이 자신의 MAC 주소 정보를 담은 ARP 응답 패킷을 전송(Unicast)
- 송신 스테이션은 목적지 IP 주소와 MAC 주소 매핑정보를 ARP 캐시에 저장하고 일정기간 사용
- ARP cache = 목적지 IP 주소 + MAC 주소
- 사용하지 않는 시간이 길어지면, 타임아웃되어 매핑 정보가 캐시에서 사라짐
- ex) A->B ping
arp -a // 모든 arp 테이블을 확인, 초기에 아무것도 없는 상태
ping 192.168.1.10
- 프레임에 담아서 보내야 함 --> MAC주소 필요 --> ARP Broadcast
ff:ff:ff:ff:ff:ff:을 Broadcast
192.168.1.10가 수신하고 MAC 주소를 reply함(0:1:3:1d:98:b8)
echo request // ping을 보냄
echo reply // B가 response
arp -a // ARP 캐시
192.168.1.10 at 00:01:03:1D:98:B8 ...
스테이션의 수신 동작
- 모든 스테이션은 브로드캐스트 프레임을 수신함
- 각 스테이션은 자신이 가입한 멀티캐스트 프레임을 수신함
- 각 스테이션은 목적지 MAC 주소가 자신의 MAC 주소와 일치하는 Unicast Frame 수신
- 브리지는 모든 프레임을 수신하여 처리(Promiscuous Mode)
- 라우터는 일반 스테이션과 같이, 모든 브로드캐스트, 가입된 멀티캐스트, 자신에게 오는 유니캐스트 프레임 수신
목적지가 같은 네트워크에 있는 경우
- 송신자와 수신자는 인접 시스템임(직접 통신 가능함)
- 송신 스테이션은 목적지 MAC 주소를 DA에 넣고, SA에 자신의 MAC 주소를 담은 프레임을 넣고, 프레임의 데이터 영역에 패킷을 넣어 전송
- 모든 스테이션은 프레임을 감지하다가, DA 주소와 자신의 MAC 주소와 일치하는 프레임 수신
- 수신 스테이션이 MAC 프레임 수신 후 오류검사
- 프레임으로 부터 패킷을 분리하여 상위계층으로 전달
목적지가 같은 네트워크 인지 판단
- 스테이션의 서브넷 마스크를 이용해 판단
- 같은 네트워크인 경우
- Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 같음 --> 직접 통신 가능
- ex) 10.10.1.1, 10.10.2.1, 255.255.252.0
- 다른 네트워크인 경우
- Source IP & Subnet Mask 결과와 destination IP & Subnet Mask의 결과가 다름 --> 직접 통신 불가능
- ex) 10.10.1.1, 10.10.2.1, 255.255.255.0
목적지가 같은 네트워크인 경우 동작
- Source -> (목적지MAC) ARP 요청 담은 프레임 전송 -> Destination
- Destination -> (목적지MAC) ARP 응답 담은 프레임 전송 -> Source
- 패킷을 담은 프레임을 목적지로 전송
다른 네트워크인 경우 동작
- 소스 노드에서 목적지가 다른 네트워크에 있다고 판단되는 경우, 패킷을 라우터로 보내기 위한 동작 개시
- 라우터의 MAC 주소를 ARP를 통해 해결
- 라우터의 MAC 주소를 MAC 프레임의 DA 필드에 넣고, 보내려는 패킷을 DATA 필드에 넣은 프레임을 만들어 송신
- 라우터는 패킷의 헤더에 있는 목적지 주소를 보고, 라우팅 테이블을 참조하여 패킷을 목적지로 전달
목적지가 다른 네트워크인 경우 동작
- Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
- Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
-
- Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
- 라우터가 패킷을 풀면 진짜 목적지의 주소가 있음 --> 목적지 방향으로 전달
DNS 이름을 사용하는 경우
- 목적지 주소가 www.google.co.kr과 같이 도메인 이름을 입력한 경우
- DNS 서버에게 질의하여 도메인 이름에 해당하는 IP 주소 값을 먼저 해결해야 함
- DNS 서버로 가는 패킷을 만들어 보내는 절차가 선행됨
- DNS 서버가 같은 네트워크에 있을 수 있고, 다른 네트워크에 있을 수도 있음
- 같은 네트워크인 경우
- ARP로 DNS 서버의 MAC 주소를 해결해서 보내야 함
- 다른 네트워크인 경우
- DNS 서버로 보내는 질의 패킷을 라우터로 보내야 함
목적지와 DNS 서버가 다른 네트워크인 경우 동작
- Source -> (라우터MAC) ARP 요청 담은 프레임 전송 -> Router
- Router -> (라우터MAC) ARP 응답 담은 프레임 전송 -> Source
- Source -> DNS 질의 패킷 담은 프레임 라우터로 전송 -> Router
- Router -> DNS 질의 패킷을 담은 프레임을 DNS로 전달 -> DNS
- DNS -> DNS 질의 응답 패킷 담은 프레임을 라우터가 수신 -> Router
- Router -> DNS 질의 응답 패킷 담은 프레임 전송 -> Source
- Source -> 목적지로 가는 패킷을 담은 프레임을 라우터로 전송 -> Router
- Router -> 목적지 방향으로 전달
IP 주소 할당
- 통신에 필요한 주소관련 정보
- IP 주소
- 서브넷마스크
- 게이트웨이주소(라우터 주소)
- DNS 서버 주소
- 보조 DNS 서버 주소
- 자동 할당
- 수동 할당
- 사람이 직접 입력
- 계속 사용
- 중복되는 주소가 있는 경우 통신이 안되거나, 해당 네트워크 비활성화