TCP/IP 기초

선영·2022년 6월 19일

1. 웹 프로그래밍 이해

  • World Wide Web을 줄여서 www 또는 이라고 한다.

  • 웹은 HTML(HyperText Markup Language)라는 간단한 마크업 언어를 통해 정보의 연결이 가능하도록 하이퍼텍스트를 포함한 콘텐츠를 제공하며, HTTP(HyperText Transfer Protocol)라는 프로토콜을 사용해 TCP/IP 네트워크상에서 서비스를 운영하게 된 것이 웹의 시작이다.

  • 네트워크를 구축하려면 컴퓨터 간의 연결 규격인 프로토콜이 필요하며 여러 프로토콜 중 가장 널이 쓰이는 프로토콜이 TCP/IP다.

  • 인터넷 기반의 대표적인 서비스는 웹 이외에도 E-mail, FTP, Telnet, DNS 등이 있지만 일반적으로 사용하는 서비스로는 웹이 절대적이다.

  • 백엔드 중심의 개발은 전통적인 웹 개발 모델이며, 서버에서 모든 것을 담당하는 방식이다.

  • 프런트엔드 중심 개발은 클라이언트에서 HTML을 가지고 있거나 서버에서 HTML만 받아오고 서버로부터 화면 구성에 필요한 데이터만 자바스크립트로 받아와 데이터와 화면을 조합해 보여주는 방식이다.


2. TCP/IP 소개

  • TCP/IP(Transmission Control Protocol/Internet Protocol)

    • 두 시스템 사이에 데이터가 손상 없이 안전하게 전송되도록 하는 통신 프로토콜
    • e-mail, FTP, 웹(HTTP) 등이 TCP/IP 통신 프로토콜로 작성되어 있음.
  • 특징

    • 연결형(connection oriented)통신. 한 컴퓨터가 다른 컴퓨터에 연결하면 둘 중 하나가 연결을 끊을 때까지 데이터를 전송할 수 있음.
    • 순서대로 전달. 받는 쪽 응용프로그램이 도착하는 데이터를 다시 정렬하는 작업은 필요 없음. 받는 쪽 응용프로그램에서는 도착하는 순서대로 받기만 하면 됨.

3. IP 주소

  • 네트워크 장치의 주소.

    • 192.156.11.15와 같이 4개의 숫자가 '.'으로 연결. 하나의 숫자 범위는 0~255로써 한 바이트로 표현 가능.
    • 전화번호나 집주소와 같이 IP주소를 통해 네트워크에 연결된 장치를 식별하기 때문에 동일한 IP주소를 여러 네트워크 장치에 중복 사용해서는 안됨.
    • IP주소는 기억하기 어려우므로 www.naver.com과 같이 도메인 이름으로 바꿔 사용하는데, 사용자가 도메인 이름을 사용하면 DNS(Domain Name System) 서버가 숫자로 구성된 IP주소로 자동 변환해줌.
  • 현재는 4개의 숫자로 표현된 32비트의 IP버전 4(IPv4)가 사용되고 있지만, 세계적으로 네트워크 장치의 개수가 폭팔적으로 증가하여 각 장치에 부여할 수 있는 IP주소가 고갈됨에 따라 128비트의 IP버전 6(IPv6)이 점점 널리 사용되는 추세.

  • 자신의 컴퓨터에서는 자신의 IP주소를 간단히 localhost라는 이름으로 사용해도 됨. localhost의 IP주소는 127.0.0.1로 지정되어 있음.


4. 내 컴퓨터의 IP주소 확인하기

  • 윈도우키 + R -> CMD -> ipconfig -> 엔터! 실행하면 확인가능.


5. TCP/IP Port(포트)

  • 한 컴퓨터에서 여러 소프트웨어들의 통신이 일어날 수 있도록 함.
  • TCP/IP를 시용하는 통신 응용프로그램은 IP주소와 포트를 이용하여 상대편 통신 프로그램과 연결하고 데이터를 교환.
  • 포트 번호는 응용프로그램 개발자가 임의로 결정하여 사용하면 됨. 하지만 기존 응용프로그램에서 이미 사용하고 있는 포트 번호나 시스템의 포트 번호는 피하는 것이 좋음.
  • 시스템이나 기존에 알려진 응용프로그램에서 이미 사용하는 포트 번호를 잘 알려진 포트(wee-known ports)라고 함. SSH는 22번 포트, HTTP는 80번 포트, FTP는 21번 포트 등이며, 주로 0~1023사이의 번호를 가지므로 개발자는 이 범위의 포트 번호는 피해서 선택하는 것이 바람직함.


참고문헌
황기태, 명품 자바 에센셜, 생능출판
황희정, 짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크, 한빛 아카데미

0개의 댓글