- ARP Protocol
- Static Router
다른 네트워크에 있는 호스트와 통신하기 위한 라우터 프로그램
Router에 Routing Table을 수동으로 입력해야하므로 Static Router
- 해당 패킷의 IP 목적지 주소를 가져온다.
- Routing Table을 통해 해당 패킷을 전달할 네트워크 주소를 알아낸다
- 네트워크 주소로 보내기 위한 인터페이스를 선택
- 선택된 인터페이스를 통해 Gateway(by Routing Table)로 패킷을 전송한다.
- Gateway의 IP 주소는 Routing Table을 통해서 알 수 있다.
- 패킷을 Gateway에 전달하려면 그 Gateway의 MAC 주소를 알아야 한다.
- MAC 주소는 ARP cache table에서 Gateway 주소에 해당하는 MAC 주소를 가져온다.
- ARP cache table에 Gateway의 정보가 없다면 ARP 메세지를 통해서 MAC 주소를 알아낸다.
- 모든 Router가 이 과정을 반복하여 목적지까지 패킷을 전달한다.
IP 주소를 이용하여 MAC Address 를 알아내기 위한 프로토콜
- Completed Entry : 20 minutes
- Incomplete Entry : 3 minutes
- GUI 생성
- 각 Layer 연결
- cache table update
Basic ARP, Proxy ARP, Grauitous ARP에 대한 모든 기능 구성
- ARP_MSG의 구성 요소
- ARP Cache Table 자료 구조 결정
- 각각의 Entry Class로 구성
- ARP_MSG 의 초기화
- Send 함수, Receive 함수 수정
- ARP Request에 대한 응답을 보내는 함수 생성(자기 주소 입력 하고 Swapping하는 등의 과정)
- ARP Layer는 IP Layer와는 단방향 연결, Ethernet Layer과는 양방향 연결)
- TimeOut 관련해서 어떻게 할 것인지? => Timer, TimerTask 이용하여 해결함.
- TCP Header 생성
- Send() 함수 생성
- IP Header 생성
- Send() 함수 생성
- IP 주소는 GUI에 나타나야 하므로 String으로 변경하는 것 => Application Layer에서 진행함
- 이전 과제 참고해서 필요한 함수들 구현
- GUI 추가 구현
- Layer 연결 수정
- 각각의 Chat/File과 연결