를 보고 따로 개인 학습용으로 정리한 글입니다. 참고만 하시고 따로 첨부한 링크를 위주로 보시길 추천합니다
Ipv4
: 현재 pc에 할당된 ip주소
서브넷마스크
: ip주소에 대한 네트워크의 대역을 규정하는 것
게이트웨이 주소
: 외부와 통신할 때 사용하는 네트워크의 출입구
ARP프로토콜: IP주소를 MAC 주소로 변환
프로토콜 타입: 3계층 주소의 타입, IPv4 주소밖에 없다. IPv4 프로토콜의 타입인 0x0800이 온다.
Hardward Address Length: 맥주소를 의미하며 맥주소의 길이 6byte가 온다. 0x06이 들어간다.
Protocol Address Length: IPv4 길이가 들어가며 4byte이고 0x04가 들어간다.
Opcode(Operation code): 어떤 ARP 요청 패킷인지 ARP 응답 패킷인지 알려주는 필드, 0x0001이면 요청 패킷, 0x0002이면 응답 패킷
👉 ARP 프로토콜은 IP 주소를 입력하면 상대방의 MAC 주소를 알아오는 프로토콜이다. 즉, 요청하고 있는지 응답하고 있는 지를 나타낸다. 따라서, 1로 보내면 상대방은 2로 작성해서 보내게 된다. 그러므로 1은 요청, 2는 응답이 되는 것이다.
출발지의 MAC 주소: 6바이트
👉 여기서 주의할 것은, 이더넷만 다른 프로토콜과는 다르게 '목적지의 MAC주소'가 먼저 온다는 것이다. 일반적으로는 출발지의 MAC 주소가 먼저 온다.
Source Protocol Address(IPv4): 4바이트
목적지의 MAC 주소 : 6바이트
Source Protocol Address(IPv4)(4바이트) 목적지 IP주소
위의 1~4까지는 고정 값이라고 봐도 무방하다.
시스템A 시스템B
10.10.10.10 10.10.10.20
255.255.255.0 255.255.255.0
AA:AA:AA:AA:AA:AA BB:BB:BB:BB:BB:BB
시스템 A가 시스템 B로 통신을 시도하는 과정(IP 주소는 알고 있는 상태, MAC 주소는 모르고 있는 상태)
1. 시스템 A는 ARP 테이블을 확인한다. (cmd에서 arp -a 명령어로 확인 가능)
2. ARP 테이블에 존재하면 해당 MAC 주소로 통신, 없으면 ARP 요청 프로토콜을 작성
[ETH 헤더][ARP 요청 프로토콜] 형식으로 캡슐화한 패킷을 전송
*tip : FF:FF:FF:FF:FF:FF 은 MAC 주소의 브로드캐스트 주소
3. 작성한 ARP 요청 패킷을 시스템 A는 브로드캐스트로 전송
4. 같은 네트워크에 있는 모든 시스템은 브로드캐스트로 전송된 패킷을 모두 받는다. 이 때 모든 시스템은 Decapsulation 과정을 수행하고 ARP 프로토콜에서 IP주소를 확인한다. 받은 ARP 프로토콜과 IP주소가 다른 시스템들은 해당 패킷을 버리고 IP주소가 같은 시스템은 ARP 응답 프로토콜을 작성
5. 응답 프로토콜을 받은 시스템 A는 ARP 응답 프로토콜에 작성된 내용을 ARP 테이블에 등록한다.
arp table
확인: https://musclebear.tistory.com/50
클래스는 비효율적인 주소 관리 방법이라 CIDR 표기!
https://limkydev.tistory.com/168
Ipv4
: 현재 pc에 할당된 ip주소
서브넷마스크
: ip주소에 대한 네트워크의 대역을 규정하는 것
게이트웨이 주소
: 외부와 통신할 때 사용하는 네트워크의 출입구
ARP프로토콜: IP주소를 MAC 주소로 매칭시키기 위한 프로토콜. 로컬 네트워크에서 단말간 통신을 할 때 ip주소와 함께 mac주소를 이용함. 목적지 ip단말이 소유한 mac주소를 제대로 찾아가기 씀.
https://aws-hyoh.tistory.com/70 글 엄청 좋음
여기선 LAN 정의를 ARP request가 미치는 영역이라고 정의
프로토콜 타입: 3계층 주소의 타입, IPv4 주소밖에 없다. IPv4 프로토콜의 타입인 0x0800이 온다.
Hardward Address Length: 맥주소를 의미하며 맥주소의 길이 6byte가 온다. 0x06이 들어간다.
Protocol Address Length: IPv4 길이가 들어가며 4byte이고 0x04가 들어간다.
Opcode(Operation code): 어ARP 요청 패킷인지 ARP 응답 패킷인지 알려주는 필드, 0x0001이면 요청 패킷, 0x0002이면 응답 패킷
👉 ARP 프로토콜은 IP 주소를 입력하면 상대방의 MAC 주소를 알아오는 프로토콜이다. 즉, 요청하고 있는지 응답하고 있는 지를 나타낸다. 따라서, 1로 보내면 상대방은 2로 작성해서 보내게 된다. 그러므로 1은 요청, 2는 응답이 되는 것이다.
출발지의 MAC 주소: 6바이트
👉 여기서 주의할 것은, 이더넷만 다른 프로토콜과는 다르게 '목적지의 MAC주소'가 먼저 온다는 것이다. 일반적으로는 출발지의 MAC 주소가 먼저 온다.
Source Protocol Address(IPv4): 4바이트
목적지의 MAC 주소 : 6바이트
Source Protocol Address(IPv4)(4바이트) 목적지 IP주소
위의 1~4까지는 고정 값이라고 봐도 무방하다.
시스템A 시스템B
10.10.10.10 10.10.10.20
255.255.255.0 255.255.255.0
AA:AA:AA:AA:AA:AA BB:BB:BB:BB:BB:BB
시스템 A가 시스템 B로 통신을 시도하는 과정(IP 주소는 알고 있는 상태, MAC 주소는 모르고 있는 상태)
1. 시스템 A는 ARP 테이블을 확인한다. (cmd에서 arp -a 명령어로 확인 가능)
2. ARP 테이블에 존재하면 해당 MAC 주소로 통신, 없으면 ARP 요청 프로토콜을 작성
[ETH 헤더][ARP 요청 프로토콜] 형식으로 캡슐화한 패킷을 전송
*tip : FF:FF:FF:FF:FF:FF 은 MAC 주소의 브로드캐스트 주소
3. 작성한 ARP 요청 패킷을 시스템 A는 브로드캐스트로 전송
4. 같은 네트워크에 있는 모든 시스템은 브로드캐스트로 전송된 패킷을 모두 받는다. 이 때 모든 시스템은 Decapsulation 과정을 수행하고 ARP 프로토콜에서 IP주소를 확인한다. 받은 ARP 프로토콜과 IP주소가 다른 시스템들은 해당 패킷을 버리고 IP주소가 같은 시스템은 ARP 응답 프로토콜을 작성
5. 응답 프로토콜을 받은 시스템 A는 ARP 응답 프로토콜에 작성된 내용을 ARP 테이블에 등록한다.
arp table
확인: https://musclebear.tistory.com/50
https://velog.io/@combi_jihoon/네트워크-5-ARP-프로토콜
네트워크 (5) | 3계층 프로토콜(ARP)
[이해하기] ARP (Address Resolution Protocol)
ip 주소(v4기준 32 bit 약 43억개, C클래스 기준) = 네트워크 id (24)
+ 호스트 id (8)
ipv4는 128bit 주소 체계
그림을 계산해보면
A 클래스, 한 네트워크당 16,777,214개의 호스트
B 클래스, 한 네트워크당 65,534개의 호스트
C 클래스, 한 네트워크당 254개의 호스트를 사용할 수 있음
근데 나는 64대의 컴퓨터만 쓰고싶은데..254개짜리 쓰면 너무 비효율적임.
클래스는 비효율적인 주소 관리 방법이라 CIDR
표기!
https://limkydev.tistory.com/168
IPv4와 IPv6는 한번씩 들어봐도, IPv5는 한번도 들어본적이 없을 것이다. 이는 IPv5가 정식 프로토콜로 채택되지 않았기 때문이다. 인터넷 스트림 프로토콜이라는 이름으로 애플과 NeXT, 그리고 썬 마이크로시스템에 의해 개발된 IPv5는 영상과 음성 데이터를 전송하기 위해 만들어졌다. IPv4에 비해 이런 형태의 데이터를 전송하기에는 효율적이었으나, 여전히 32비트 주소체계를 가지고 있었다. 따라서 IPv4와 같은 주소 고갈 문제가 있어 버려진 프로토콜이 되었다. 정식 프로토콜은 바로 IPv6으로 넘어가게 되었다.
그 외 참고 사이트: IPv4가 고갈 됐는데, AWS는 어떻게 주소를 발급할까?
게이트웨이: 어디로 가려면 일단 여기로..! 공유기 아이피
NAT이란
NAT(Network Address Translation)기술 통신 원리
•일반적인 인터넷 공유기는 NAT(Network Address Translation)기술이 적용된 장치이다.
•보통 주소와 포트번호를 모두 제어한다.
•인터넷 IP주소 부족 문제를 해결해 준다.
•패킷 필터링 방화벽과 비슷한 보안성을 제공한다.
공인 IP 1개당 2^32개의 사설 ip
ppt자료 보고 공부하기
1. Cone NAT
•Host 단위로외부포트지정
•Full Cone
•RestrictedCon
•IP Address restricted
•Portrestricted
2. Symmetric NAT
•TCP 세션마다 외부포트지정
포트포워딩(port forwarding)은 컴퓨터 네트워크 상에서 패킷이 방화벽이나 라우터 같은 네트워크 게이트를 지날 때 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환의 응용이라고 볼 수 있습니다. 이러한 포트포워딩은 라우터에서 새로운 기능을 이용할 수 있는 강력한 툴이 될 수 있으면서도 심각한 온라인 취약성에 노출시킬 수도 있습니다.
-1. IP주소를 라우팅 테이블에 적혀있는 모든 서브넷 마스크와 and연산을 취한다.
-2. 그 값을 모든 네트워크 대상과 비교한다.
-3. 일치하는 네트워크 대상에 대한 매트릭값을 비교하고 매트릭값이 제일 작은 인터페이스를 선택한다.
-4. 이후 통신. 소켓에 인터페이스에 대한 TCP/IP주소를 바인딩 하고 요청을 세그멘테이션해서 전송한다.