본문 바로가기
CS/기본기 탄탄📌자료들

네트워크 재정리

by IMSfromSeoul 2021. 11. 9.

🔥 address

  • IEEE 802.3 ( 이더넷 ) : 사무실과 가정에서 많이 사용되는 일반적인 케이블 기반 네트워크
  • IEEE 802.11 ( 무선 네트워크 ) : 무선 LAN. WIFI

🔥 CSMA / CD

  • 전파 충돌탐지 시스템

📌 IP 주소

  • 192.168.1.2 라는 IP 주소가 나의 주소라고 해보자.
  • 네트워크 주소는 192.168.1 까지고, 2가 나만의 호스트 IP이다.
  • 네트워크 주소는 공통 부분이 있는 부분, 호스트 IP까지 들어가면 식별할 수 있는 고유한 주소가 된다.
  • 2진수 8비트 네자리로 이루어진 표기법을 IPv4라고 한다. 최대 43억개까지 가능하고, 현재 거의 고갈됐다.
  • 하나의 십진수는 8자리의 2진수로 대체될 수 있는데, 이 2진수를 옥텟이라고 부른다.
  • 즉, IPv4는 4개의 옥텟으로 이루어진 것.

https://limkydev.tistory.com/167

📌 IP 클래스

  • 네트워크 주소와 호스트 주소를 구분할 수 있는 이유 -> 클래스
  • 203.240.100.1 이 C클래스 라는 사실을 알아냈기 때문에, 203.240.100 은 네트워크 주소이고, 1은 호스트 주소라는 것을 알아낸 것이다.
  • 즉, 클래스는 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법이자 약속인 것.
  • IP주소 클래스의 종류엔 총 5개가 존재. A,B,C,D,E. 그러나 보통 A,B,C 정도만 사용한다. ( D는 Multi-cast, E는 연구용으로 사용 )
  • A는 대규모, B는 중규모, C는 소규모 네트워크 환경에 사용된다.

A 클래스 : 0000 0000 ~ 0111 1111 ( 0 ~ 127 )
B 클래스 : 1000 0000 ~ 1011 1111 ( 128191 )
C클래스 : 1100 0000 ~ 1101 1111 ( 192
223 )
D클래스 1110 0000 ~ 1110 1111 (224 ~ 239)
E클래스 1111 0000 ~ 1111 0111 (240 ~ 255)

A 클래스 네트워크 영역 : 8비트 // 호스트 영역 : 24비트
B 클래스 네트워크 영역 : 16비트 // 호스트 영역 : 16비트
C 클래스 네트워크 영역 : 24비트 // 호스트 영역 : 8비트

📌A,B,C class

🔥 A class

  • A 클래스 = 클래스 중 하나의 네트워크가 가질 수 있는 호스트의 수가 가장 많은 클래스.
  • 맨 앞자리의 수가 항상 0인 경우
  • 즉, 첫번째만 네트워크 부분을 나타내고 나머지는 호스트 부분을 나타낸다.
  • 127은 제외된다. 이는 약속이다.
  • 예시를 들어보자.

A클래스로 13.0.0.0 을 할당받았다.
네트워크 부분 = 13.
호스트 Ip를 할당할 수 있는 부분 = 0.0.0

13.0.0.0은 네트워크 주소를 표현하기 위해 비워둔다.
13.255.255.255 는 브로드캐스트 주소로 사용되기 때문에 비워둔다.

그래서 2^8 * 2^8 * 2^8 = 2^24 에서 -2를 해준 값이 A클래스로 사용할 수 있는 값이다.

https://aws-hyoh.tistory.com/70
https://bamdule.tistory.com/193
https://blog.daum.net/hellstar/22

  • ip 클래스는 비효율적이다. 만약 B 영역의 사용권한을 KT에게 부여했다고 해보자. 만약 이 중 10000개만 사용한다면 50000개는 점유하고 있지만 놀고 있는 상태가 돼서 비효율적이다. 그래서 고안된 것이 서브넷 마스크 이다.

📌 서브넷 마스크

⚡️ 쉽게 말해서, 네트워크 부분을 제약하는 것. 그렇게 함으로써 더 많은 네트워크망을 다양한 사용자들에게 뿌릴 수 있게 된다.

  • 서브넷 마스크를 사용하면 IP 할당 범위를 더 작은 단위로 나눌 수 있다.
  • 서브넷 마스크는 연속된 1과, 연속된 0의 조합으로만 구성돼야한다.
  • 즉, 11111111.11111111.11110011.00000000 이란 값은 가질 수 없고, 11111111.11111111.11111100.00000000의 형태만 가질 수 있다.
  • 192.168.0.1/24 라면 뒤에 24는 서브넷 마스크이다. 32비트 중 1의 개수가 24개라는 의미이다. 나머지는 0으로 채워주면 된다.
  • 11111111.11111111.11111100.00000000
  • 서브넷 마스크는 IP 주소와 AND연산을 하여 새로운 네트워크 영역과 호스팅 영역을 만들 수 있다.
  • 서브넷 마스크의 값이 높아질 수록, 더 작은 단위의 호스팅 영역이 만들어진다.

https://bamdule.tistory.com/191

🔥 서브넷 마스크 다른 설명

  • Subnetting을 먼저 이해해야 한다. Subnetting = 네트워크 관리자가 네트워크 성능을 향상시키기 위해 자원을 효율적으로 분배하는 것이다. 즉, 네트워크 영역과 호스트 영역을 분리하는 것이다.
  • 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어 네트워크 낭비를 방지하는 것이다.
  • 어느 한 네트워크에서 1100까지의 IP를 할당 받을 수 있는데, 실제 필요한건 20개 정도라면, 120까지만 IP를 주고 21~100은 사용자가 신경쓰지 않게 끔, 서브넷 마스크로 가려버린다.
  • 192.168.0.1/24 라고 한다면, 기본 default mask는 255.255.255.0이다.
  • /24는 1이 24개 있다는 의미인데, 이는 1111 1111.1111 1111.1111 1111.0000 0000 이고, 앞의 1의 영역은 네트워크 영역으로, 0은 호스트 IP로 사용하겠다는 의미이다.
  • 즉, 앞의 1 24자리로 앞의 영역을 가려버리겠다는 의미이다.
  • 클래스를 사용하고 있다는 뜻은, 결국 서브넷 마스크를 사용한다는 말과 같다.

https://bamdule.tistory.com/191
해당 링크 예제 풀어보기

🔥 또 다른 설명

  • IP Address에서 첫 비트부터 어디까지가 네트워크 부분인가 알려주는 역할 = 서브넷 마스크
  • IP 주소에 마스크를 씌워서 어디까지가 네트워크 부분인가를 표시하는 것

  • 네트워크 부분은 다 1이기 때문에, 네트워크 부분은 그대로 내려올 것이고, 호스트 부분은 모두 0으로 내려올 것이다.
  • broadcast address 는 호스트 부분을 모두 1로 바꾸면 구할 수 있다.
  • 위 예에서 192.168.1.1/24는 network address가 192.168.1.0 이고, broadcast address 가 192.168.1.255 이며, 할당 가능한 호스트는 192.168.1.1 ~ 192.168.1.254까지이다.
  • 이를 구하는 공식은 2 ^ ( 호스트의 비트 수 ) - 2 이다.

⚡️ 예제

  • 풀이 팁 : 뒤에 붙은 0의 개수 만큼만 자율권이 있는 것.

https://blog.daum.net/hellstar/23

📌 IPv4

https://m.blog.naver.com/hostinggodo/220589113088

📌 LAN ?

  • 동일한 Subnet mask를 사용한다면, 곧 동일한 LAN이라고 할 수 있다.

📌 ARP

  • IP주소를 MAC주소로 연결시키기 위한 프로토콜
  • 단말기 통신에서 양쪽 단말은 IP를 이용해서 목적지를 지정하지만, 실제 데이터 이동을 위해 MAC 주소를 함께 이용한다. 이를 위해 필요한 것이 ARP 인 것이다.
  • IP주소와 MAC 주소를 일대일 매칭해서 LAN에서 목적지를 제대로 찾아갈 수 있도록 돕는다. 해당 테이블을 ARP Table이라고 한다.

🔥 MAC 주소란

  • data link layer에서 통신을 위해 할당된 고유 식별자
  • ip주소는 끊임없이 변화하는 논리적 주소이다. 그에 반해 mac 주소는 웬만해서는 변하지 않는 물리적 주소이다.
  • 라우팅을 할 때 MAC 주소를 이용해서 라우팅을 한다면, 라우터가 다운되고 말 것이다. 숫자가 매우 많아질 것이기 때문이다.

⚡️ARP 쉽게 이해하기
https://aws-hyoh.tistory.com/entry/ARP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
⚡️LAN 쉽게 이해하기
https://aws-hyoh.tistory.com/entry/LAN-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

📌 ICMP

  • TCP/IP 에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
  • IP에는 에러에 대한 처리 방법이 명시돼 있지 않기 때문에, 해당 IP의 부족한 점을 메꾸기 위해 등장한 프로토콜이다.
  • 네트워크 계층에 속하며, IP와 같이 사용된다.

https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=rbdi3222&logNo=220602423771
https://run-it.tistory.com/31

📌 스위치 - 라우터

🔥 라우터

  • 네트워크 사이에서 데이터 전송을 수행하는 기기
  • 라우터는 IP 주소를 사용해서 네트워크 간의 데이터 전송을 수행하며, 이를 라우팅이라고 한다.
  • 라우팅을 수행하기 위해서는 미리 라우팅 테이블에 네트워크 정보를 등록해두어야 한다.

🔥 스위치

  • 같은 네트워크 내부에서 데이터 전송을 수행하는 기기
  • 스위치는 PC나 서버에 있어서 네트워크의 입구에 해당하는 네트워크 기기이다.
  • 스위치는 MAC 주소를 사용해서 같은 네트워크의 LAN 포트 간 데이터 전송을 수행한다.

MAX -> MAC

https://server-engineer.tistory.com/582

📌 네이글 알고리즘

  • 가능하다면 조금씩 여러 번 보내지 말고, 한 번에 많이 보내라
  • 원래는 ERSU 라는 문자열을 보낸다고 하면, E 보내고 ACK 받고, R보내고 ACK 받고 해야 하는데, Nagle 알고리즘은 한 번에 모았다가 ERSU를 보낸다. 다만, data를 모아서 보내기 때문에 delay가 생길 수 있다.

https://snowdeer.github.io/common-sense/2017/08/17/nagle-algorithm/

📌 3 way , 4 way handshake

https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake

📌 TCP Connection

  • TCP 커넥션을 통해 HTTP 메세지 전송하기

1. TCP는 세그먼트라는 단위로 데이터 스트림을 잘게 나눈다.
2. 세그먼트를 IP 패킷이라고 불리는 봉투에 담는다.
3. 인터넷을 통해 데이터를 전달한다.

  • TCP 커넥션 값 식별

1. 발신지 IP
2. 발신지 Port
3. 수신지 IP
4. 수신지 Port

4가지 구성요소를 똑같이 갖고 있는 커넥션은 존재하지 않는다.

🔥 piggyback

  • 확인 응답을 즉시 보내지 않고, 데이터 전송이 있을 경우에 확인 응답을 같이 실어서 보내는 것.

https://en.wikipedia.org/wiki/Piggybacking\_(data\_transmission)
https://itteemo.tistory.com/28

🔥 TCP slow start

  • TCP 커넥션은 시간이 자니면서 자체적으로 튜닝돼서, 처음에는 커넥션의 최대 속도를 제한하다가 연결이 성공적으로 맺어져서 전송이 진행됨에 따라 속도 제한을 높여나간다.

https://feel5ny.github.io/2019/08/26/HTTP\_004\_01/
https://icksw.tistory.com/222

📌 7 layer 등 외

https://imsfromseoul.tistory.com/153?category=867222

📌 IP주소, 네트워크주소, 게이트웨이주소

  • Ip 주소 = 네트워크 주소 + 호스트 주소
  • 서브넷 마스크 = 네트워크 주소와 호스트 주소를 나누는 기준이 되는 주소
  • 게이트 웨이 = 라우터의 주소
  • public ip, private ip => router는 2가지 ip를 갖는다. public ip를 갖고 외부 네트워크와 소통하고, private ip ( 게이트웨이 ) 를 통해 내부 네트워크와 통신한다.
  • 스위치 => 네트워크 안에서 단말기끼리 연결해주는 것
  • public ip의 범위

A class : 10.0.0.0/8 ~ 10.255.255.255 /8
B class : 172.16.0.0/16 ~ 172.31.255.255 /16
C class : 192.168.0.0/24 ~ 192.168.255.255/24

https://onepinetwopine.tistory.com/433

댓글