TCP/IP 기초와 JAVA/C#을 활용한 네트워크 프로그래밍 1장

신범철·2021년 9월 17일
0

21-2네트워크수업

목록 보기
1/5

머리말

학교 네트워크 프로그래밍 강의 교재이다.
하지만 수업은 4장 http부터 진행 되어 1,2,3장을 선행하려고 작성하게 됨

TCP/IP 네트워크 모델

통신 방식 TCP/IP는 여러 프로토콜(규칙)의 집합이다.
TCP/IP : TCP와 IP 프로토콜에 관련된 모든 것

물리 계층 : 실제 데이터가 전송되는 라인
링크 계층 : 일대일로 마주보는 호스트 사이에서 전송선 ex) 유선, 무선 이더넷
네트워크 계층 : 네트워크로 구성된 호스트들 사이에서 데이터를 주고 받는 기능 ex) ip프로토콜
트렌스포트 계층 : 흐름제어, 에러 제어, 상대방 호스트에서 실행되는 여러개의 프로세스중 특정한 프로세스를 지정하는 기능 ex) TCP 프로토콜
응용 계층 : 웹브라우저나, 메일 프로그램과 같은 실제 사용자가 접촉하는 부분

응용 계층에서 발생한 데이터가 송신 될때 각 네트워크 계층 마다 헤더가 추가 되고 목적지로 도착하면 다시 각 계층마다 헤더가 제거 됨
트렌트포트 계층 헤더 : TCP헤더(송수신 포트번호) ->
네트워크 계층 헤더 : IP헤더(송수신 IP주소) ->
데이터 링크 계층 헤더 : 이더넷 헤더(송수신 이더넷 주소), 트레일러(에러체크를 위한 32비트 CRC코드)

궁금했던점 : 아래 헤더는 어떤 헤더인가 다 삭제되는데!!

1~7 계층 헤더들을 모두 캡슐화해서 보낸다. 그리고 송신하면서 1~6계층 헤더들은 확인하고 삭제하므로 7계층의 헤더만 남게 된다. 사진에서 헤더는 HTTP(7계층)의 헤더이다.

TCP/IP 프로토콜의 목록과 기능

IP : 호스트와 호스트 사이의 데이터를 전달
TCP : 연결형 프로토콜, 각 호스트에서 수행되는 애플리케이션 사이의 신뢰성 있는 데이터 전달 기능
UDP : 비 연결형 프로토콜, 빠른 전달, 신뢰성x
ARP : ip주소에 해당하는 MAC 주소를 찾음
RARP : MAC주소를 가지고 이에 해당하는 IP주소를 찾음
ICMP : IP 네트워크 계층에서의 에러보고 및 제어정보 전달
IGMP : 멀티 캐스트 그룹 가입 및 탈퇴 등 멀티캐스트 관련 기능 제공

ip 주소 및 클래스

32비트 IP주소 클래스 구분

IPv4는 주소간의 중복을 피하기 위해 interNIC에서 분배하여 네트워크 영역과 호스트 영역으로 나눔
위에 표에서 숫자는 네트워크 ID이고 h는 호스트 영역이다.

ip주소는 유니캐스트, 브로드캐스트, 멀티캐스트로 나눔

  • 유니캐스트 : 개별 호스트(단일)
  • 브로드캐스트 : 로컬 네트워크에 있는 전체 호스트를 지정해주는 주소(통신하고자하는 시스템의 MAC 주소를 알지 못하는 경우, 네트워크에 있는 모든 시스템에게 알리는 경우, 라우터끼리 정보를 교환하거나 새로운 라운터를 찾는 경우 등에 이용)
  • 멀티캐스트 : 특정한 호스트 그룹에만 지정된 주소(라우터가 멀티캐스트를 지원해야함, UDP사용)

서브넷

InterNIC에서 할당받은 ip주소중 호스트영역은 해당 기관(학교, 회사, 관공서 등)의 네트워크 관리자들이 내부의 PC에 자유롭게 할당하여 사용 가능하다.
클래스 A, B는 호스트 영역이 크기 때문에 서브넷으로 나누어 사용

같은 서브넷끼리는 게이트웨이 필요x :서브넷으로 통신
다른 서브넷 일때는 게이트웨이 통신 게이트웨이에는 라우트의 포트가 연결되어 있어 통신 가능

게이트웨이 : 서로다른 네트워크를 연결해주는 역할

멀티 캐스트

특정 호스트 그룹에게만 전송, D클래스, ex) 화상통화

루프백 주소

자기자신에게 돌아오는 주소 : localhost라고도 함

이더넷 프레임

네트워크 링크 계층에서 사용되는 대표적인 기술
주로 LAN사용

ip주소를 전송하기 위한 하나의 물리적 도구(LAN)

ARP 동작

주소 결정 프로토콜 : 해당 IP를 그 IP주소에 맞는 물리적인 주소 즉 MAC주소를 가지고 오는 프로토콜
LAN환경에서 목적지 호스트(컴퓨터)의 MAC주소(하드웨어주소, 물리주소, 이더넷주소)를 자동으로 얻는 방식. = 링크 계층 주소를 얻음

동작원리
1. 송신자는 목적지 물리주소가 필요하므로, 물리주소 요청을 위한 APR요청 패킷을 브로드캐스트 전송 (브로드캐스트를 하는 이유는 목적지의 물리 주소를 모르므로 모두에게 요청)
(요청 패킷에는 수신자가 수신자 주소를 응답할 때 필요한 송신자 주소 포함)

  1. 모든 호스트와 라우터는 송신자가 보낸 aRP 요청 패킷을 수신
  2. 해당되는 수신자만 자신의 논리주소와 물리주소를 넣어 응답 패킷으로 유니 캐스트로 전송

ARP 동작 과정


1. 송신자는 목적지 IP Address를 지정해 패킷 송신
2. IP 프로토콜이 ARP 프로토콜에게 ARP Request 메세지를 생성하도록 요청
= ARP 요청 메세지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)
3. 메세지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨
= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정
4. 모드 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달

5. 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메세지를 보냄
= 자신의 물리주소를 포함하는 응답 메세지
6. 최소 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득

  • ARP 요청은 브로드캐스트 ARP 응답은 유니캐스트

RARP

역순 주소 결정 프로토콜
ARP와 반대로 해당 MAC주소에 맞는 IP값을 알아오는 프로토콜

profile
https://github.com/beombu

0개의 댓글