0부터 시작하는 네트워크 공부 - TCP 프로토콜

Jaehong Lee·2022년 6월 16일
0
post-thumbnail

1. TCP 프로토콜

  • TCP란? Transmisson Control Protocol로 프로그램 간에 통신을 안정적으로, 순서대로, 에러없이 교환할 수 있게 하는 프로토콜이다
    • 출발지, 도착지 포트
    • TCP Flags : Data 통신 상태 응답

2. TCP 전송 과정

2.1 연결 수립 과정

2.2 데이터 송수신 과정

  • TCP를 이용해 Data 송수신 할 때 단순히 TCP 패킷만을 캡슐화해서 통신 하는 것이 아닌 PAYLOAD를 포함한 패킷을 주고 받을 때의 규칙
    1. 송신 쪽에서 또 보낼 때 SEQ, ACK 번호는 동일
    2. 수신 쪽에서 받은 ACK 번호는 보내는 SEQ 번호가 된다
    3. 보내는 Data가 있을시 보내는 ACK 번호는 받은 SEQ 번호 + Data의 크기

3. TCP 상태전이도

  • 서버는 수동, 클라이언트는 능동
  • 점선이 서버, 실선이 클라이언트
  • ESTABLISHED : 연결이 된 상태, 이 상태가 되야 Data 전송이 가능하다
  • LISTENING : 서버가 요청을 기다리는 상태
  • 즉, LISTENING -> SYN_SENT, SYN_RECEIVED -> ESTABLISHED
  • 실선과 점선 각각 따라가며 파악해보기

4. 실습

  • APACHE : APACHE24를 통해 자신의 IP를 웹에서 접속할 수 있게 배포
  • 0.0.0.0 : 모든 ip, 이 ip에 포함된 주소로 찾아와야지만 내 컴퓨터에 접속 가능
  • 127.0.0.1 : 나 자신을 나타내는 ip
  • 해당 파일로 서버 IP 변경 가능

  • PID : 실행중인 프로세스 ID
  • HTTPd 포트와 해당 PID 확인 가능, HTTP의 포트 번호는 80이고 APACHE HTTPd의 pid는 5080
  • 상태가 LISTENING이여야 통신 가능

  • 본 컴퓨터에서 가상 IP로 접속시 19.1과 연결되는 이유는 19.1은 가상 머신에서 게이트웨이 주소를 통해 가상 공유기와 연결하면, 그 가상 공유기가 VM net 8과 연결 시키는데 이 장치의 IP 주소가 1이다
  • APACHE를 이용해 HTTPD를 실행했기에 PID가 5080이다
  • 외부에서 내부 사설 ip가 apache를 통해 http 프로토콜로 배포한 곳에 접속했기에 80번 포트에 접속한 것이다. 외부 cmd상에서는 19.3:80에 접속했다고 나온다.

  • 가상 IP에 접속 가능하다

5. VM net 8

  • VM net 8을 연결하면 가상 환경에 게이트웨이가 생겨 인터넷과 접속이 가능하다.
  • 즉, 본 컴퓨터에서 가상 환경의 사설 IP에 접속하면 VM net 8과 연결되기에 NAT를 통해 외부 IP가 1로 출력된다.
  • VM net 8 이 NAT 라면 가상의 Gateway에서 NAT를 해준다
profile
멋진 엔지니어가 될 때까지

0개의 댓글

관련 채용 정보