• OSI 7계층

네트워크 통신의 7단계 과정

https://www.youtube.com/watch?v=1pfTxp25MA8 

  • TCP 동작 방식

https://beenii.tistory.com/127

 

TCP 동작 방식 (3-way handshake, 4-way handshake)

웹 서비스 동작 방식을 보면, 사용자가 url을 입력하면 도메인 주소를 이용하여 DNS에서 IP 주소를 얻어오고, 그렇게 얻어온 IP 주소를 웹 데이터 형식으로 변하여 TCP 통신을 통해 웹 서버와 주고받

beenii.tistory.com

 

사용자가 url을 입력하면 도메인 주소를 이용하여 DNS에서 IP 주소를 얻어오고,

그렇게 얻어온 IP 주소를 웹 데이터 형식으로 변하여 TCP 통신을 통해 웹 서버와 주고받게 됩니다.

이때 TCP 통신을 하기 위해 3-way handshake로 접속을, 4-way handshake로 접속 해제

 

 

 

 



  • 네트워크 통신에서는 주로 IP주소를 통해 통신한다.
    • mac주소는 사람이 입력하기에 너무 복잡해서, 더 간단한 주소 체계인 IP주소를 통해 통신한다. 
  • IP주소는 3계층에서 사용하는 주소 체계이다. 
    • 2계층은 mac주소이다. 
    • IP주소는 정말 복잡하다...........
  • 3계층에서 하는 일 
    • 다른 네트워크 대역을 연결시켜 준다.
    • LAN과 LAN을 연결시켜 주는 것이 3계층의 역할
    • 3계층의 대표적인 장비 - 라우터
      • 서로 다른 LAN을 묶어주려면 이것이 필요하다. 
    • 멀리 있는 네트워크와 통신할 때는 MAC 주소 뿐만이 아니라 IP 주소가 필요하다. 
    • ipconfig
      • IPv4 주소 : 현재 PC에 할당된 IP주소
      • 서브넷마스크 : IP 주소에 대한 네트워크의 대역을 규정하는 것
      • 게이트웨이 주소 : 외부와 통신할 때 사용하는 네트워크의 출입구 
        • 위의 3가지는 멀리있는 것과 통신하기 위한 최소한의 설정
  • 3계층 프로토콜 
    • ARP 프로토콜
      • IP주소를 이용해 MAC 주소를 알아오는 프로토콜
    • IPv4 프로토콜
      • WAN에서 통신할 때 사용하는 프로토콜
    • ICMP 프로토콜
      • 서로가 통신되는지 확인할 때 사용하는 프로토콜
  • IP 주소 (통산 IPv4주소)
    • 클래스 별로 나눠서 사용 (old version) - 사용할 수 있는 범위가 딱 정해져 있음 
    • MAC 주소는 6 Byte이고, IP주소는 4Byte다. 
      • 여기서 잠깐, 
        • 1 Byte는 8Bit , 2진수로 2^8 
          • 00000000 (0) ~ 11111111 (255) 
          • 0.0.0.0 ~ 255.255.255.255
    • 네트워크를 구분하고 -> PC를 구분하는데 쓰인다.
    • 기존에는 classful하게 썼는데 아이피주소가 부족해서 서브넷마스크를 이용해 네트워크를 구분한다.
      • 서브넷 마스크
        • 네트워크 대역을 나눠주는 데 사용하는 값
        • 2진수로 표기했을 때 1로 시작, 1과 1사이에는 0이 올 수 없다는 규칙 
          • 255.255.255.192 -> 11111111.11111111.11111111.11000000
            • 1인 지점까지가 네트워크를 구분하는 곳이고, 0은 그 하나의 네트워크 대역에 속한 컴퓨터를 구분하는 데 쓰임
    • 현재 version IPv4
      •  사설 IP와 공인 IP 
        • 공인 IP 1개당 2^32개의 사설 IP
        • 공인 IP는 인터넷 네트워크 통신망에서 사용하는 IP 주소 
        • 사설 IP는 같은 네트워크 대역에서 사용하는 IP 주소
      • 아이피 주소 부족 현상으로 사설 IP와 공인 IP로 구분해서 사용하기로 했다. 
        • 사설 네트워크 대역에 있는 장비들은 네트워크 통신을 할 때 공인 IP로 바꿔서 인터넷과 통신한다. 
          • 우리 강의장에서는 사설 네이버 같은 다른 네트워크 대역으로 갈 때 공인 IP로 바뀌어서 간다.
          • 따라서 외부에서 볼 때는 같은 네트워크 대역에 있는 장비들이 구분이 되지 않는다.
          • 네이버가 우리한테 웹툰을 보내주면, 공인 IP로 들어오지만 공유기에서 누가 요청한건지 찾아서 전달해준다.
          • 인터넷 비용을 매월 3만원씩 낸다 -> 공인 IP 하나를 사는 것임
            • 집에 있을 때는 공유기를 통해 통신하는 것임 (컴퓨터, 핸드폰 이용)
        • NAT (Network address translator)
          • 사설 IP에서 공인 IP로 바꿔주는 것  - NAT는 기술임
            • NAT table에 요청이 나갈 때 기록함 
            • 나간적이 없어서 NAT table에 기록된 게 없는데 어디선가 공유기에 데이터를 전달하면 공유기가 받고 끝이 난다. 
            • 서버는 어떻게 되나?
              • 웹서버 (네이버)가 있다고 치자.
              • 우리가 네이버에 요청을 하고, 웹서버는 사설IP대역에 있다 치면..
              • 네이버는 나간적이 없으니까 NAT 테이블에 기록이 안되어 있을테니 요청을 받아도 기록된게 없어서 응답을 보내줄 수 없음
              • 서버는 따라서 공인 IP를 주로 씀 
                • 아니면 공유기에 뭔가 추가 설정을 함 (포트포워딩) 
          • 이 기술을 이용해서 IP부족 현상을 해결한 것 
        • 0.0.0.0 (wildcard)
          • 나머지 모든 IP주소를 말함 
          • 일반적이지 않음 
        • 127.0.0.1 
          • 자기 자신을 뜻하는 주소 
          • 통신이 안될 때 내 아이피 주소에 ping 때려봄 
        • 게이트웨이 주소 
          • 공유기의 IP 
          • 쓸 수 있는 IP에서 가장 적거나 가장 큰 IP 주소를 적음 
          • 설정 안되어 있으면 인터넷이 안됨 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 로컬에서 통신할 때는 OSI 7 Layer에서 2계층을 이용함
    • Ethernet만 알아볼 것임
  • 2계층에서 하는 일
    • 하나의 네트워크 대역, LAN 대역에서 존재하는 여러 노드들이 통신할 때 사용한다. 
    • 2계층은 하나의 네트워크 대역 즉, 같은 네트워크 상에 존재하는 여러 장비들 중에서 어떤 장비가 어떤 장비에게 보내는 데이터를 전달 
      • 다른 네트워크와 통실할 때는 항상 3계층이 도와주어야 한다.
      • IP주소를 사용한다던가 3계층 장비를 이용해 통신한다던가 해야함
    • 오류제어, 흐름제어도 함 
  • 2계층에서 사용하는 주소 
    • 물리적인 주소
    • LAN에서 통신할 때 사용하는 MAC주소 
      • OUI (IEEE에서 부여하는 일종의 제조회사 식별 ID) + 고유번호 (제조사에서 부여한 고유번호)
      • 6C-29-95-04-EB-A1
        • 16진수 1개가 4bit

  • 2계층의 프로토콜
    • LAN에서 통신할 때 사용하는 Ethernet 프로토콜
      • 구조
        • Destination Address(목적지 MAC주소 / 6byte) + Source Address(출발지 MAC주소 / 6byte) + Eternet Type (0800이면 IPv4 / 2byte) 
        • 총 14byte로 구성되어 있는 Ethernet 프로토콜
        • Eternet Type
          • 데이터가 IP인지 ARP인지 뭔지 미리 알 수 있도록 상위 프로토콜이 뭔지 알려주는 정보

앞에 6Byte는 보내는 사람 mac주소, 뒤의 6Byte는 받는 사람 mac주소, 0800은 이더넷 타입으로 IPv4임을 알려준다.

 

  • TCP/IP
    •  초기 네트워크 모델 방식 
    • 4개의 계층으로 이뤄짐 
    • 프로토콜로 구분되어 있어서 프로토콜로 구분해서 이해할 때는 TCP/IP로 이해하면 편함 
  • OSI 7계층
    • 네트워크 통신을 표준으로 지정한 모델
    • 데이터를 주고 받을 때 데이터 흐름을 각 구간별로 나눔 
    • 역할 기반
    • 7계층 HTTP, 4계층 TCP/UDP, 3계층 IP/ICMP/ARP, 2계층 이더넷 정도만 알아보면 됨
  • 네트워크를 통해 전달되는 데이터, 패킷
    • 패킷이란?
      • 데이터 자체를 통칭해서 씀
      • 하나의 블록 단위 
      • 제어정보 + 사용자 데이터 (누가 누구에게, 어떻게, 뭘 요청하는지, 뭘 보내주는지 등의 정보가 패킷안에 담겨있다) 
      • 여러가지 프로토콜의 조합!
        • 패킷 안에 있는 프로토콜도 순서가 있다!
        • 헤더 + 페이로드 + 풋터 
          • 예를 들어
            • HTTP 프로토콜을 페이로드로 해서 TCP라는 헤더를 붙였음 -> 1 패킷 완성
            • 근데 다시 이 패킷을 페이로드로 해서 IPv4 프로토콜을 헤더로 붙임 - >  2 패킷 완성
            • 다시 이 패킷을 페이로드로 해서 Ethernet 프로토콜을 헤더로 붙임  -> 3패킷 완성 
          • 이 과정을 캡슐화라고 한다 
            • 이건 보낼 때 사용
            • 패킷을 만드는 과정 
            • 예 
              • 마음의 소리 몇 화가 보고 싶다고 요청함 네이버에
                • '나 마음의 소리 몇 화가 보고 싶어' -> 데이터 
                • 네이버의 웹서버와 연결해야 하니까 TCP로 캡슐화 했음 (TCP(헤더) + 데이터)
                • 멀리 가야하니까 Ipv4 헤더를 또 붙임 
                • 이 패킷을 페이로드로 해서 가까운 곳이랑 일단 연결해야 하니까 Ethernet 헤더를 붙임
              • 상위 계층에서 하위 계층으로 내려가면서 패킷을 붙임
    • 계층별 패킷의 이름 
      • TCP + 데이터 -> 세그먼트  (4계층의 PDU)
      • IPv4 + TCP + 데이터 -> 패킷 (3계층의 PDU)
      • Ethernet + IPv4 + TCP + 데이터 -> 프레임 (2계층의 PDU)

  • 네트워크란 무엇인가
    • 컴퓨터 또는 통신 장비들이 데이터를 공유할 수 있게 하는 디지털 전기통신망의 하나
    • 분산되어 있는 컴퓨터를 통신망으로 연결
    • 인터넷이란
      • 문서, 그림 영상과 같은 여러가지 데이터를 공유하도록 구성된 세상에서 가장 큰 네트워크
      • 네트워크 안에 포함된 것이 인터넷이고, 네트워크 안에 포함된 여러 통신망 중의 하나
      • 그 통신망을 이용해 '웹서비스'를 이용한다.
        • www이 인터넷이 아니다. 
          • www는 인터넷을 통해 웹과 관련된 데이터를 공유하는 것이다. 

https://youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi

  • 네트워크의 분류
    • 크기에 따른 분류
      • LAN : Local Area Network
        • 가까운 지역을 하나로 묶은 네트워크
          • 스타크래프트 배틀넷에 접속해서 플레이어 들이랑 만나서 플레이  할 때 근거리 통신망으로 이용한다. (같은 PC방에 있는 친구들끼리 만남)
        • 같은 네트워크 대역
      • WAN : Wide Area Network
        • 멀리 있는 지역을 한데 묶은 네트워크 
          • 가까운 지역끼리 묶인 LAN과 LAN을 다시 하나로 묶은 것 (여러 개의 LAN 네트워크 대역을 연결)
          • 인터넷을 통해 네이버를 접속한다? 
            • 네이버 LAN과 나의 LAN을 연결했다
    • 연결 형태의 따른 분류
      • Star형
        • 중앙 장비에 모든 노드가 연결된 것 
          • 가정집에서 공유기를 통해서 핸드폰, 컴퓨터, tv 등으로 연결한다. 
          • 가까운 지역에 있는 네트워크를 연결할 때, 하나의 LAN을 구성하려고 할 때 이 방식을 주로 채택
          • 멀리 있는 것을 직접 연결하려고 할 땐 선 길이당 돈이 드므로 가까운 걸 연결할 때 주로 사용 
      • Mesh형
        • 여러 노드들이 서로 그물처럼 연결
          • 우리나라가 다른 나라와 연결되어 있는 형태 
          • WAN대역에서 주로 채택함 
      • 혼합형
        • 실제 인터넷은 여러 형태를 혼합한 형태 (star + mesh 등의 조합)
  • 네트워크의 통신방식
    • 네트워크에서 데이터는 어떻게 주고 받는가?
      • 유니캐스트 : 내가 통신하고 싶은 특정 대상(한 사용자)이랑만 
      • 멀티캐스트 : 같은 네트워크 대역에서 여러 사용자가 있다고 했을 때 특정한 다수와 통신을 하는 것 
      • 브로드캐스트 : 같은 네크워크 대역에 있는 모두와 통신
  • 네트워크 프로토콜
    • 프로토콜이란?
      • 일종의 약속, 양식 
      • 네크워크에서 노드와 노드가 통신할 때 어떤 노드가 어느 노드에게 어떤 데이터를 어떻게 보내는지 작성하기 위한 양식 
      • 각 프로토콜들도 해당 프로토콜만의 양식이 있음 
    • 여러가지 프로토콜
      • 하고 싶은 네트워크 방식에 따라서 멀리, 가까이, 인터넷을 하고 싶다, 파일공유를 하고 싶다 등 여러가지 상황에 맞는 여러 프로토콜이 있음 
        • 가까운 곳과 연락할 때 : Eternet (MAC 주소)
        • 멀리 있는 곳과 연락할 때 : ICMP, IPv4, ARP (IP주소)
        • 여러가지 프로그램으로 연락할 때 : TCP, UDP (포트 번호)
      • 패킷 
        • 여러 프로토콜들로 캡슐화 된 것 
          • Ethernet + IPv4 + TCP + 데이터 
            • 가까운 곳만 통신하고 싶다 그래서 이더넷만 사용? (X)
            • 데이터를 어떤 프로그램에 (TCP) 얼마나 멀리 (IPv4) 어느 컴퓨터에 (Ethernet) 
            • 특정 프로토콜로만 통신하지 않고 여러 프로토콜이 결합된 형태로 통신을 한다.

 

구글과 나는 어떻게 연결되는 가 

  • $ tracert 8.8.8.8 로 확인해보면 10개 이상의 LAN 을 통해 연결되는 것을 알 수 있다.

용도에 맞는 프로토콜을 사용한다. 

네이버를 접속했다고 가정하면, IPv4프로토콜을 이용해 판교에 있는 네이버 본사 iptime까지 접속하고 거기서 가까운 서버로 접속하기 위해 Ethernet 프로토콜을 사용하고, 크롬 프로그램과 네이버 프로그램을 연결하기 위해 TCP 프로토콜을 사용함 

 

 

 

 

출처 : https://youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi 

+ Recent posts