네트워크 기초

Shaun·2023년 6월 18일
0

네트워크 기본

목록 보기
7/8

저번시간에는 컴퓨터 기초에 대해 알아봤다면 이번에는 네트워크 기초에 대해 알아보자

네트워크 공부를 하게 되면 꼭 마주치는 OSI7 Layer 라는것이 있는데 여기서는 깊게 다루지는 않을 예정이다.

OSI7 Layer

  • 여기서 쓰인 Layer라는 단어의 뜻은 It세계에서는 존립이 의존적이다라는 뜻이다.

  • 네트워크는 사람과의 대화로 비유해서 보면 쉽다. 사람과 대화를 할때는 그에 걸맞는 언어나 규칙,상호 작용, 과정 등등 필요한 것이 많다. 네트워크도 이와 매우 흡사하게 클라이언트가 요청을 보내면 서버가 그에대한 응답을하고 이러한 행위를 하기위해서는 전제조건들이 필요하다. 그게 OSI7Layer이다

UserMode/KernelMode VS OSI7Layer

  • Usermode 에서 kernelmode 로 통하는 인터페이스 형태는 file 이지만 tcp/ip 네트워크 추상화가 이루어진것을 socket이라고 부름

  • OSI 7Layer 빗대어 보면 사실상 tcp/ip 는 레이어 처럼 표현해줘야함(위TCP 아래는 IP)

  • Socket 을 열었네 닫았네 하는데 그 주체는 process이다.

  • FLOW : 하드웨어 network Interface card(NIC) - driver - ip -> tcp -> chrome

OSI7Layer 식별자

  • OSI7Layer 에는 식별자가 존재한다.

  • Driver와 NIC(Lan카드) 사이 식별자는 MAC주소라고도 하며 Lan카드를 식별한다 Lan카드가 2개면 MAC주소도 2개

  • L3 인터넷 계층에서는 IP주소가 식별자이다. L4는 port번호

Host

  • Host: Computer+netWork

  • Host는 크게 두가지로 나뉜다.

    EndPoint : 주로 Client,Server, peer
    Switch : netWork 그자체를 이루는, 그 infra를 이용하는 주체가 endPoint

Switch가 하는일

  • 우리가 차를 타고 경로에서 선택을 할때는 ‘근거’ 가 필요하다

  • 네트워크를 도로라고 치면 선택을 해야하는 구간을 switch 라 하고 선택하는것을 Interface를 선택한다고하며 switching라고도 표현할 수 있디 // 차는 packet

  • IP 주소를 ‘근거’로 하고 switching 하면 이것을 L3 switching 라고 한다. 이러한 switching 을 router 라고 부르기도 한다. 즉 쉽게말해 IP주소(도착지) 를 정해 데이터를 보내는것

  • router에는 routerTable이 있으며 ‘근거’ 헤딩한다고 보면 됀다. routerTable은 router선택에 대한 근거

  • 네트워크에서는 이동을할때 비용을 생각하는데 그 비용을 metric 이라고 부른다

L2 Access switch

  • Lan케이블이 직접 연결되는 스위치
  • End-point(pc) 와 직접 연결되는 스위치
  • MAC주소를 근거로 스위칭

L2 Distribution switch

  • 쉽게 말하며 L2Access switch 를 위한 스위치

  • VLAN 기능제공하는것이 일반적

LAN , WAN 그리고 BroadCast

  • BroadCast는 특별한 주소를 가지고 있다(MAC,IP 모두 존재)

  • MAC(48비트) 같은 경우 2진수로 나타냈을때 모두 1이면 broadCast이다.

  • 네트워크에서 목적지가 모두 1로 되있으면 그건 broadCast, 즉 전부 다 받으라는 의미이다.

  • 하지만 broadCast를 해버리면 나머지 애들은 끝날때까지 통신을 못함.. 그래서 신중하게 해야함

L3

  • L3단계 에서 식별자는 IP주소이다.
    -> IP는 32비트이며 8bit * 4로 표현 되기도함

  • 8bit니까 허용 범위는 0~255

  • 24비트는 netWorkId + 8bit hostID

L3 Packet

  • 단위 데이터

  • 헤더페이로드로 나뉘며 최대크기(MTU)는 1500byte다.

  • HeaderpayLoad로 나뉜다.

  • 맨 바깥부분이 L2: frame ->
    그안쪽 payLoad에는 다음 계층인 L3 IP:packet
    그안쪽 payLoad에는 다음 계층인 L4 Tcp:segment 이런식으로 곂곂이 enCapsulation이 되있다.

Packet흐름

  • Data를 socket(file)에 write 한다. 하지만 socket가 TCP일경우 write가 아닌 send라고 표현함

  • TCP 영역에 오게되면 Data에 TCP라는 헤더를 붙인다. 이것을 segment라고 한다.

  • 내려갈수록 계속 하나씩 붙는다. 그리고 마지막에 L2Access switch -> 라우터 -> 인터넷을 통해 나간다.

계층별 데이터 단위

  • 각각 계층별 로 데이터 단위가 존재한다.

    -L1~L2 :Frame
    -IP : Packet
    -TCP : Segment
    -Socket : Stream

  • 보통 Stream을 socket에 write해서 내보내는데 만약 밑에 계층에서 받을 수 있는 크기 MTU 1500바이트를 넘으면 어떻게 될까?

-> Socket에서 Tcp로 넘어가는 지점에서 분할(segmentation)이 일어난다! 즉 밑에 계층에서 받을 수 있는 사이즈로 잘라서 보내준다.

profile
호주쉐프에서 개발자까지..

0개의 댓글