본문 바로가기
cs기초 지식 정리/네트워크

네트워크(2)

by 세용용용용 2023. 10. 25.

2계층 에서는 무슨일을 할까???

1. 2계층 에서 하는 일

같은 LAN대역에서 여러 장비들 사이 데이터를 전달(추가적으로 오류제어, 흐름제어 수행)

2계층은 LAN에서만 통신할 떄 사용 다른 네트워크와 통신할 떄는 3계층 주소와 프로토콜을 이용해야됨(IP주소)

 

2. 2계층에서 사용하는 주소

LAN에서 통신할 떄 사용 하는 주소 : MAC주소(물리주소)

 

3. 2계층 프로토콜( 이더넷 프로토콜)

DA : 목적지 주소

SA : 출발지 주소

len/Type는 상위계층 프로토콜을 알려줌

상위계층이 ipv4이면 0800, arp면 0806

 

3계층 에서는 무슨일을 할까???

실제로 컴퓨터 끼리는 ip주소를 사용해 데이터를 주고 받는다.

 

1. 3계층 기능

(1) 서로 다른 LAN대역을 연결시켜주는 역할

즉, LAN과 LAN을 연결(라우터와 같은 3계층 장비 필요)

 

WAN에서 통신할 때 MAC주소 뿐만아닌 IP주소도 가지고 있어야됨

ipv4주소 : 현재 pc에 할당된 ip주소

서브넷 마스크 : ip주소에 대한 네트워크 대역을 규정

게이트웨이 주소 : 외부와 통신할 떄 사용하는 네트워크의 출입구

 

 

(2) 3계층 프로토콜

ARP프로토콜 : IP주소를 이용해 MAC주소를 알아옴

hardware type : 하드웨어 타입(0001 이더넷)

protocol type : 프로토콜 타입(0800 ipv4)

operation code : 어떻게 동작하는지 나타내는 코드(물어볼떄 1, 응답은 2)

source hardware address : 출발지 MAC

source protocol address : 출발지 ip주소

destination hardware address : 목적지 MAC

destination protocol address : 목적지 ip주소

 

순서

1. arp요청( arp요청 프로토콜을 보냄 )

- 이떄 목적지 mac주소는 모르기떄문에 00 00 00 00 00 00 00 으로 비워둠

- 인캡슐레이션 할떄 이더넷 프로토콜 또한 목적지 mac주소도 모르기에 FF FF FF FF FF FF로 채운다(브로드 캐스트 주소) 즉, 해당 프로토콜을 작성해 같은 대역에있는 모두에게 보냄 왜?? 모르기에 

 

2. 목적지 맥주소가 브로드캐스트이기에 같은 네트워크 대역의 모두에게 보내줌

 

3. 목적지에서 2계층 3계층 프로토콜을 까서 3계층 본인의 IP주소와 목적지 IP주소가 일치하면 해당 컴퓨터는 응답 프로토콜을 만들어주 보내준다(이제는 출발지는 자기 IP주소 목적지는 이제 알고있기에 요청을 보낸 컴퓨터 IP주소 즉, 누구한테 보내야될지 알고 있기에 브로드캐스트를할 필요가 없음)

 

4. 최종적으로 ARP요청한 컴퓨터는 디캡슐레이션해서 패킷을 까면 요청을 보낸 컴퓨터IP주소를 알수가 있음

그후 ARP캐시 테이블에 정보를 저장해둠(IP주소와, MAC주소)

즉, 최초의 통신시에는 ARP통신이후에 이루어짐 즉, 결국 ARP캐시테이블에 정보가 저장이된후 통신이 이루어짐

ARP테이블 : 나와 통신했던 컴퓨터 주소 정보

 

 

IPv4프로토콜 : WAN에서 통신할 떄 사용함

- 네트워크 상 테이터를 교환하기 위한 프로토콜

- 데이터가 정확하게 전달될 것을 보장하지 않는다.( 데이터의 정확하고 순차적 전달은 상위 프로토콜인 tcp에서 보장)

version : ip프로토콜 버전(4,6)

header length : 헤더의 길이

type of service : 서비스의 형식(지금은 쓰이지 않음)

total length : 전체의 길이

identifcation : 쪼개진 패킷을 알아볼수 있게 ip를 주는것(id가 같아야 원래 같은 패킷이였다는것을 알수 있다)

ip flags : 조각화 이루어 졌을떄 나말고 패킷이 더있다는 것을 알려줌 (M:1)

fragment offset : 조각화된 패킷의 순서를 알아볼수 있게 offset을 사용(즉, 시작부분 부터 해당 패킷이 얼마나 떨어져있는지)

TTL : 패킷이 살아있는 시간(잘못된 경우를 대비해) , 상대방 운영체제를 알수 있다(윈도우 128)

protocol : 상위 프로토콜이 뭔지(tcp : 06, udp : 17, icmp:01)

header checksum : 헤더가 오류가 있는지 확인하는 값

source address : 출발지 ip

destination address : 목적지 ip

 

 

 

ICMP프로토콜 : 서로 통신이 되는지 확인할때 사용

특정 대상과 내가 통신이 되는지 확인하는 프로토콜

type(대분류) : 0(통신 응답), 8(통신 요청), 3(목적지 도달 할수 없음, 경로상 문제), 11(요청시간 만료, 상대방이 방화벽 켜놨을떄) , 5(보안상)

code(소분류) 

 

 

2. 일반적인 ip주소

(1) IP주소가 처음 나왔을떄 클래스풀 하게 사용 : 클래스를 나눠서 사용

A클래스는 첫번쨰 필드만 네트워크 대역을 구분함 나머지 필드는 해당 네트워크의 IP수.. 너무많음(2의 24승만큼 IP를 한대역에 둘수있음)

B클래스는 두번쨰 필드 까지만 네트워크 대역을 구분 나머지 필드는 해당 네트워크의 IP수.. 그래도 많음 ㅋㅋ(2의 16승 만큼 IP를 한대역에 둘수있음)

C클래스는 세번쨰 필드 까지만 네트워크 대역을 구분 나머지 필드는 해당 네트워크의 IP수 (2의8승 256개) 일반적으로 많이 쓰던게 C클래스

D클래스는 멀티캐스트를 위해 남겨둔 주소, 일반 PC들이 사용하는 주소가 아님

E클래스는 실험,연구를 위한 주소

 

BUT, 이렇게 클래스에 맞게 IP를 사용하다보니 낭비가 됨.. 그러다 보니 굳이 클래스에 맞게 쓰지말고 클래스 리스하게 쓰자

 

(2) 클래스 리스 방식 : ip주소를 사용할떄 서브넷 마스크를 같이 사용

서브넷 마스크 : 네트워크 대역을 어디서 부터 구분할지 지정하는

즉, 서브넷 마스크를 사용해 어디까지가 네트워크를 구분하는 값이고 그뒤로는 해당 네트워크 대역에 속해있는 호스트를 구분하는 값으로 사용

 

서브넷팅 : 이처럼 서브넷 마스크를 사용해 네트워크 대역을 나누는 것을 서브넷팅 이라함

 

그래도 많은 컴퓨터들이 생기면서 ip가 부족하게됨 그래서 나온 개념

(3) 사설ip와 공인ip 

- 공인 ip는 인터넷 통신망과 통신할떄 사용하는 ip주소

- 사설ip는 같은 네트워크 대역에서 사용하는 ip주소

사설 ip대역의 호스트들은 외부 인터넷 과 통신시 공인ip 의 네트워크 로 바꿔서 통신하게됨

NAT : 네트워크 주소를 사설ip에서 공인ip로 바꿔주는 것(특정ip를 특정ip로 바꾸는 기술)

 

사설ip 공인ip특징은 외부에서는 사설ip를 모르기때문에 사설ip가 요청을 하고 받는 경우만 통신이 가능하지

외부에서 사설ip와 통신은 불가능하다.(사설ip가 외부에 요청이 nat테이블에 요청 정보를 저장하고 받을때 해당 테이블 정보로 받는데 외부에서 직접 통신시 nat테이블에 정보가 없기때문에 공인ip는 처리하지 못함)

그럼 방법이 없냐?? ㄴㄴ... 외부에서 직접 통신을 하기위해선 직접 '포트포워딩'을 해주면됨

 

 

3.  특수한 ip주소

0.0.0.0 (와일드 카드) : 나머지 모든 ip

127.0.0.1 : 자기 자신을 나타내는 주소

게이트 웨이 주소 : 어딘가로 가려면 일단 여기로가야됨(일반적으로 공유기의 ip)

추가적으로 인터넷을 ip주소로 하는 사람은 없으니까 도메인주소로(www.naver.com) 인터넷을 하기위해서는 도메인 서버가 설정이 되있어야됨

 

 

 

4. ipv4조각화

큰ip패킷들이 작은 MTU를 갖는 링크를 통해 전송되려면 여러 개의 작은 패킷으로 쪼개 전성됨

MTU는 일반적으로 1500

 

'cs기초 지식 정리 > 네트워크' 카테고리의 다른 글

네트워크 살펴보기  (0) 2024.10.30
네트워크 기본 구조 (1)  (0) 2024.10.29
네트워크(4)  (0) 2023.10.29
네트워크(3)  (1) 2023.10.28
네트워크(1)  (2) 2023.10.23