Host란?
네트워크에 연결된 컴퓨터
[ Host의 종류 ]
1. 네트워크를 사용하는 컴퓨터 ( Endpoint )
- Client, Server, Peer ( 단말기 )
2. 네트워크 자체를 구성하는 컴퓨터 ( Switch )
- Router == 경로를 찾기위해 Switching
- F/W ( 방화벽 ), IPS == 보안을 위해 Switching
MAC 주소 ( 하드웨어 주소 )
LAN카드를 구분하기 위한 식별자 ( NIC, 2계층 )
하나의 컴퓨터에, 여러개의 NIC를 가질 수 있으므로, MAC 주소도 여러개가 될 수 있다.
하드웨어 주소임에도 "바꿀 수 있다"
IP주소
Host를 구분하기 위한 식별자 ( 3계층 )
사람 - Host
주민등록번호 - IP
사람을 주민등록번호로 구분하는 시스템 - Internet ( Network )
[IP주소 종류]
IPv4 - 32bit 길이의 주소 ( 43억개의 컴퓨터 구분가능 )
IPv6 - 128bit 길이의 주소
[IP주소 생김새]
192.186.60.14 - IPv4
2001:0db8:85a3:08d3:1319:8a2e:0370:7334 - IPv6
( 주로 IPv4를 사용하므로, IPv6는 설명하지 않음 )
IP는 점(.)을 기준으로 주소를 나눈다.
점이 3개이므로, 나누어진 부분은 4개가 되고
32bit길이를 4로나눈, 8bit x 4개 형태로 표현한다.
8bit는 0 ~ 255까지의 숫자를 표현할 수 있다.
[IP주소를 용도별로 묶기]
IP주소를 크게 2개의 덩어리로 나누어 관리한다.
Net ID - 맨앞에서부터 분리한 부분까지 ( 네트워크를 표현하기 위해 사용 )
Host ID - 맨뒤에서부터 분리한 부분까지 ( Host를 표현하기 위해 사용 )
결국 IP = Net ID + Host ID ( 총 32bit )
[서브넷 마스크]
Net ID의 길이를 나타내는 주소
( IP를 두개의 덩어리로 나누어 관리하므로, 나누어진 부분을 표시해놔야 한다 )
255.255.255.0 ( 24bit )
192.168.60.14 / 24 ( 24bit ) - 서브넷마스크를 (/숫자) 형식으로 표현하는 방식 CIDR
하나의 컴퓨터에, 여러개의 IP주소를 연결( 바인딩 )할 수 있다
Port번호
앱개발자 - 프로세스를 구분하기 위해 포트번호를 사용
시스템개발자 - 서비스를 구분하기 위해 포트번호를 사용
하드웨어개발자 - 인터페이스를 구분하기 위해 포트번호를 사용
usermod 계층에 존재하는 프로세스 ( 실행중인 프로그램 )이,
kernalmod 계층에 존재하는 프로세스에 접근 할 수 있도록 해주기 위해서
소켓을 붙여 준다. ( 이때, 포트번호가 할당됨 )
소켓은 파일이지만, 프로토콜을 추상화? 했기 때문에, 소켓이라는 이름을 따로 붙여준다.
포트번호 : 16bit 길이의 데이터
0 ~ 65535 까지 표현가능
0번과 65535번은, 사용할 수 없다 ( 따로 용도가 정해져있음? )
프로세스마다, 다른 소켓을 붙여주어야 하기 때문에,
당연히 포트번호도 다를 수 밖에 없다.
Switch란?
네트워크 자체를 구성하는 컴퓨터 ( Host에 속한다 )
목적지에 가기위한, 경로를 선택한다.
교차로( Switch )에서, 이정표( 라우팅 테이블 )를 보고 길( 인터페이스 )을 선택( Switching )한다.
제일 최적화된 경로를 찾는 것이 중요하다.
[Router]
L3 Switch ( IP 에 도착하기 위해, 경로를 선택 한다 )
하나의 Router ( Switch )에서 갈 수 있는 길 = 네트워크 인터페이스라고 부름
라우터는 서로 통신한다 ( 최적의 경로를 구하기 위해 )
자동차 = 패킷
DNS
Internet
Router + DNS의 모음
반응형