본문 바로가기
스파르타 내일배움캠프/TIL(Today I learned)

25.03.18 TIL - 네트워크

by pandastic 2025. 3. 18.
반응형

 

 

목차

     

    네트워크

    1. 인터넷

    • 인터넷 프로토콜 스위트(TCP/ IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망.

            → 인터넷을 활용하여 멀리 있는 컴퓨터 간의 통신 가능.

     

    1. 컴퓨터 간의 통신 방법

    1. 해저 광케이블
      • 해저 광케이블로 물리적인 연결이 되어있음.
    2. 인공위성
      • 인공위성을 통해 무선 통신 가능.

       - 유/ 무선 방식으로 World Wide Web가 구축됨.

     

     

    "인터넷 프로토콜"이란?

    • 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약.
    • IP에 필요한 고유 주소인 "IP 주소"와는 다름!

     

    2. IP주소

    • 각 기기 간의 통신을 식별할 수 있는 전화번호.
    • 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 이라는 단위로 전달함.
    • 192.168.0.1 은 IP에 필요한 고유 주소인 "IP 주소".

     

    3. Packet

    • 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어 어떤 컴퓨터에 데이터를 전송할지 판별 가능.
    • Packet은 크게 헤더, 페이로드, 트레일러(수신 여부 포함)로 구분됨.
    • 데이터를 주기만 하는 것이 아닌 받고 응답함!

     

    IP방식의 문제점

    1. 애플리케이션 구분
      • 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분할 수 없음.
      •  어떤 프로그램에 사용할 데이터인지 확실하게 구분되어야 효율적으로 데이터 통신 가능.
    2. 비연결성
      • 수신 대상의 현재 상태에 상관없이 데이터 전송.
      • 대상 컴퓨터가 전원이 꺼져있을 경우 데이터를 정상적으로 수신하지 못함.
    3. 비신뢰성
      • 패킷이 소실되는 경우 발생.
      • 패킷의 손상여부를 송신, 수신 측 모두 알 수 없음.
      • 패킷의 순서가 뒤죽박죽이 되어 섞여서 들어오는 경우 발생.
        • 용량이 큰 데이터의 경우 패킷이 여러 개로 나뉘어져 전송됨. → 패킷이  손실되거나, 오류가 발생하여도 데이터의 재전송을 진행하지 않음.

    → 위의 문제점 해결을 위해 등장한 것이 TCP 프로토콜.

     

     

     

    2. TCP(Transmission Control Protocol)

    • 서버와 클라이언트 간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜.
    • IP 방식에서 발생하는 패킷 손실이나 오류 발생 시 데이터를 재전송하지 않는 문제를 해결할 수 있는 대안.

     

    1. 3 Way Hand Shake

    • 3 Way Hand Shake는 물리적으로 연결되는 것이 아니라 최소한의 논리적인 연결을 통하여 연결이 되었다고 가정하는 것.

     

    2. SYN(Synchronize)

    • 클라이언트가 서버에게 연결을 요청하는 첫번째 단계.
    • 클라이언트는 서버에게 "연결 의사"를 나타내기 위해 SYN 플래그가 설정된 패킷 전송.
    •  패킷에는 시퀀스 번호도 포함되어 있고 데이터 전송 순서를 관리할 준비를 함.

     

    3. ACK(Acknowledge)

    • 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계.
    • 서버는 클라이언트의 SYN 요청을 수락, 연결 시작 의사를 담아 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 클라이언트에게 전송.
    • 서버는 클라이언트의 시퀀스 번호에 1을 더한 값을 ACK로 응답

     

    1. SYN 접속 요청
    2. ACK 요청 수락 → ACK가 없다면 연결 실패.
    3. ACK → ACK 함께 데이터 전송 가능.

     

    • 데이터 전송 여부

    → TCP를 통해 통신하면 데이터를 잘 받았다는 응답을 반환.

     

    • 패킷 순서

    → 패킷이 나뉘어져 올지라도 순서를 보장함.

     

    TCP 단점

    • 연결하는 과정, 데이터 전송에 시간이 많이 소요됨.
    • 최소한의 논리적인 연결이 필요하기 때문에 현재 단계 이상의 최적화를 하기 힘듦. → 3 way handshake 과정을 거치는 만큼 속도가 느림.

     

    3. UDP(User Datagram Protocol)

    • 비연결형, 신뢰성이 없는 전송 프로토콜.
    • 실시간 통신이나 스트리밍 애플리케이션에서 빠른 전송이 중요해서 이러한 요구를 충족하기 위해 개발됨.

     

    UDP의 특징

    1. IP 방식과 거의 비슷함.
      • 3 way handshake를 하지 않음.
        • 데이터 전송, 응답, 순서를 보장하지 않음.
    2. 추가적인 기능이 거의 없음.
      • 기능이 없고 연결을 하지 않는 대신 속도가 빠름.
    3. IP와 차이점으로 PORT가 존재함.
      • TCP에도 PORT가 존재.
    4. 데이터 무결성 검사 → 체크섬(Checksum)을 포함하고 있음.
      • 잘못된 데이터가 전송되지 않도록 만들어줌.

     

    1. PORT

    • 같은 IP 내에서 프로세스 구분을 하기 위해서 사용.
    • 프로그램을 구분하기 위해 사용되는 것이 PORT. → 쉽게 말해서 PORT는 아파트 호수와 같은 역할을 수행.

     

    2. TCP/ IP Packet 구조

    • 소스 PORT, 대상 PORT를 포함함.

    • 자주 사용되는 PORT
      1. 0 ~ 65535 할당 가능
      2. 이미 사용되고 있는 포트 (0 ~ 1023)
    • FTP - 20, 21 (TCP)
    • SSH - 22 (TCP)
    • 텔넷 - 23 (TCP)
    • SMTP - 25 (TCP)
    • DNS - 53 (TCP/UDP)
    • DHCP - 67 (UDP)
    • HTTP - 80 (TCP)
    • HTTPS - 443 (TCP)
    • RDP - 3389 (TCP/UDP)
    • 실제 개발을 진행할 때 사용되지 않는 나머지 포트를 사용하여 개발.
    반응형