1. 네트워크
네트워크를 배우려는 사람들을 위해
OSI 7 Layer는 완벽하게 이상에 해당한다 목숨걸지 말 것.


- 7계층
- DoD에서 정한 4계층을 기준으로 하는것이 맞음
- Application
- Transport (TCP) / 식별자 Port 번호
- Network(IP) / IP 주소
- Access ( NIC Network Interface Card) / Mac
- 각 사이를 연결하는것
- File
- Divice Driver
MAC주소, IP주소, Port번호가 식별하는 것

Mac address(L2) : Network Interface Card에 대한 식별자(Lan 카드 유선/무선) == 하드웨어 주소
예를들어 노트북이 유선, 무선 랜카드 들고있으면 NIC가 두개가 있는셈
ip주소(internet protocol)(L3) : Host에 대한 식별자
host(L4) : 인터넷에 연결된 컴퓨터
한 컴퓨터에는 ip주소가 몇개가 있을까 → n개 가능
NIC에 여러개의 ip를 사용할 수 있음 → 이걸 바인드한다고 함

MAC : 변경가능한가? → 변경가능하다.
Port번호에 대해서 주로 다루는 계층에 따라 대답이 달라 질 수 있다.
- sw개발자, 관리 : 프로세스 식별자
- 네트워크 관리하시는분(4계층 다루는 사람) : Service 식별자?

HTTP는 TCP port 80번을 씀 근데 8080을 쓰기도함
그래서 네트워크 관리하는 사람에게는 80번 열어달라기보다 HTTP 서비스 열어달라는게 더 적절한 요청이 될 수 있음
- 물리적으로 하드웨어 쪽에 가까운사람 : interface 번호
공유기에 유선으로 랜케이블 꽂을 수 있는 단자의 번호
Host, Switch, Network 이들의 관계에 대해…
Host : Network 연결 된 컴퓨터

호스트 종류
- 네트워크 자체를 이루는 호스트 → Switch
- Router
- Firewall
- ips
- 네트워크를 이용주체로서 호스트 → End-Point (단말)
- peer = server + client
- server
- client
Internet을 이루는 가장 중대한 구성요소
- 라우터
- DNS
Switch : switching 하려고
FW/ IPS로 스위치임 보안때문에 스위칭을 하는 것 보안스위치라함
Router도 스위칭 함 경로찾으려고
MAC을 가지고 스위칭함 ⇒ L2 스위치
ip주소를 가지고 스위칭 → L3 스위치
HTTP의 뭘 가지고 스위칭 → L7스위치
Layer가 높을 수록 연산이 복잡함

- TCP/IP 계층달라서 슬래시 들어감.
공유기는 스위치라 할 수 있을까? 맞다면 몇 계층일까?
IPv4주소 체계에 대한 암기사항
IPv4 : 32bit
IPv6 : 128bit

ip주소는 8비트씩 끊어서 . 표시

앞에 24비트씩을 끊어서 Network ID라 부른다 뒤의 8비트를 HostID라 한다
이거는 예시고
IP주소는 = NetID + HostID
이 네트워크 ID의 길이를 나타내는게 NetMask
예를들어 NetMask가 255.255.255.0 이다 하면 AND연산해서 나온게 네트워크 id가 됨.
개발자 입장에서 Port번호 이해하기

TCP/IP를 UserMode 어플리케이션으로 제공하는게 본질은 파일이나 소켓이라 한다.
소켓은 파일같은거지만 TCP 소켓인경우 attach 되는 정보중 하나가 port 번호임
port번호는 16비트 정보인데 0 ~ 65535 임 이중에 0과 65535 를 뺀 65533개를 사용함
Switch가 하는 일은 Switching 이다.

Switch : 교차로
경로, 인터페이트 : 길
switching : 경로 선택하는 것
그래서 목적지까지 어떻게 빨리 갈까?
Internet = Router의 집합체(라우터는 L3 스위칭)
여기서 교차로는 Router가됨
그림의 교차로로 보면은 4개의 네트워크 인터페이스를 가진 Router가 됨
한곳에서 정보(패킷)가 도착하면 세곳중 하나를 고르는게 스위칭
빠르게 보내기위해 라우터끼리 통신함
라우터 몇개가 망가진다고 인터넷 전체가 손상되지않음
최적화된 이정표 = 라우팅 테이블
네트워크 데이터 단위 정리


프로세스 존재 TCP/IP 존재 그사이를 잊는 추상화된 File interface = socket
TCP IP 와 NIC 를 잊는 Divice Driver
File 은 기본적으로 Stream이라고 생각할 것
시작은 있는데 끝은 없음.
길이가 굉장히 길어질 수 있음.
- TCP에서 다루는 단위 Segment
- IP수준에서 다루는 단위 : PAcket
- 그 밑에서 Divice, NIC 단 단위 Frame

그럼 이제 File에다 Write를 한다고 보자.
- Stream 데이터를 TCP Segment화 함 → Segmentation (일정 길이로 분해 ) 됨
- 이 일정길이의 최댓값 : Maximum Segment Size
- 이 MSS는 Packet의 최대 크기에 기반해서 만들어짐.
- Packet의 최대크기 : MTU maximum transport unit : 일반적으로 1500바이트 (1.5kb)
1.5mb stream은 1000개의 Packet으로 쪼개져서 보내진다고 보면됨.
이 Packet이 Frame 화되는게 Encapculation 이라 함
MTU > MSS
네트워크 인터페이스 선택 원리와 기준

컴퓨터가 유선도 연결되어있고 무선도 연결되어있으면 ip 주소는 몇개 일까?
- 두 개
유선은 KT를 쓰고 무선은 SKT를 썼다고하자
두개의 인터넷이 연결된상태에서 크롬을 썼다 그러면 소켓이 열릴건데 TCP/IP binding이 되고 각각의 ip에 대해서 device driver 가 연결된다
유선 #1 skt → Router DNS
무선 #1 kt → Router DNS

그럼 네이버를 본다고했을때 유선을 통해서 할까 무선을 통해서 할까
연결된 Network Interface 선택이 필요

route print

해당테이블에 근거해서 선택
interface에 주소가 박혀있음
매트릭값 : 비용