Search

[TIL#2] 세션 만료 여부, TCP 연결

subtitle
Tags
Web
Created
2021/06/07
2 more properties
저번 TIL
저번 파파 스터디 질문
서버에서 세션이 끊어진 걸 어떻게 아는가?
클라이언트와 서버 간 연결이 끊어지면 서버는 클라이언트에 대한 정보를 알 수 없다.
이런 이유로 세션 만료를 알 수 있는 건 서버에서 요청을 받고 그 요청을 처리할 때뿐이다.
마찬가지로 세션이 만료되었다는 정보도 알 수 없다.
그러므로 세션 타임아웃 시간을 정해서 세션 만료 여부를 체크해야 한다.
// code source: https://jeonghwan-kim.github.io/%EB%85%B8%EB%93%9C%EC%97%90%EC%84%9C-%EC%84%B8%EC%85%98%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%95%84%EC%9B%83-%EA%B5%AC%ED%98%84/ app.use(express.cookieParser()) app.use( express.session({ key: "sid", // 세션키 secret: "secret", // 비밀키 cookie: { maxAge: 1000 * 60 * 60, // 쿠키 유효기간 1시간 }, }) )
TypeScript

TCP

1.
프로토콜: 컴퓨터 사이의 통신하는 규칙
혹은 네트워크 호스트 사이의 통신 규칙
네트워크 호스트: 네트워크 상에서 통신하는 PC, 스마트폰, 그리고 각종 네트워크 기기 전반
2.
Transmission Control Protocol: 전송제어 프로토콜
3.
TCP: 두 컴퓨터 간 연결 지향 통신을 위한 전송 계층 호스트 간 프로토콜
연결지향 통신
전송 계층 호스트
4.
HTTP, SMTP 등 상위 레벨 프로토콜 데이터를 캡슐화
캡슐화: 상위 계층의 정보에 자신의 헤더를 붙여 다음 하위 계층에 보내는 과정
OSI 7 계층에서의 캡슐화 과정
헤더가 왜 헤더인지 그림을 보면 알 수 있다. 데이터 맨 앞에 붙기 때문 ㅎ
이를 이해하려면 먼저 TCP/IP 계층에 대해 알아야 한다.
TCP/IP의 구조
애플리케이션층: 애플리케이션에서 다루는 데이터 형식과 절차 정의
http, SMTP, DNS 등
트랜스포트층: 애플리케이션에 데이터 할당
TCP, UDP
UDP
인터넷층: 엔드투엔드 통신
IP, ARP
궁금하면 클릭~
네트워크 인터페이스층: 통신 상대의 프로토콜과 관계없이 나의 프로토콜을 자유롭게 선택 가능.
이더넷, 무선 LAN(wi-fi)
궁금하면 클릭
5.
TCP 데이터 전송 절차
TCP 커넥션 맺기
애플리케이션 간 데이터 송수신
TCP 커넥션 끊기
6.
three-way-hand-shake (커넥션 맺기)
데이터를 TCP 프로토콜을 통해 전송하려면 데이터를 애플리케이션 프로토콜 헤더(ex. http 헤더)와 TCP 헤더에 추가해야 한다.
이때 사용하는 TCP 헤더를 'TCP 세그먼트'라고 표현한다.
애플리케이션 데이터 크기가 크면 분할하여 여러 개의 TCP 세그먼트로 전송한다.
TCP 헤더에 어떻게 분할되었는지 '시퀀스 번호'에 기록하면 목적지(클라이언트나 서버)에서 원본 데이터로 조립하여 사용한다.
ACK: 데이터가 도착하면 받았다고 확인하는 패킷
일부 데이터가 도착하지 않으면 재전송 요청함
플로우 제어: 네트워크가 혼잡하면 데이터 전송 속도 제한
7.
웹사이트 데이터 분할
웹에 액세스 → 애플리케이션 프로토콜로 http 사용 → 웹사이트 데이터에 http 헤더 추가
tcp 헤더를 추가해 여러 개의 tcp 세그먼트로 만듦
그리고 네트워크(이더넷)로 보내기 위해 다시 IP헤더, 이더넷 헤더로 캡슐화
왜 프로토콜이 생기게 되었을까요?
This initial packet network technology development was soon followed by a number of others involving a variety of transmission media, such as mobile packet radio [4,5], packet satellite [6,10], local area networks [11,12], and an increasing number of private and public data networks. Historical views of the development of many of these packet communications systems can be found in Networking architectures revolve around the protocols which are used to control the transport of data among the systems which must communicate with one another. - The DoD Internet Architecture Model, DARPA(Defense Advanced Research Projects Agency)
초기 패킷 네트워크 기술 개발에는 여러 종류의 전송 미디어의 증가가 뒤따랐다. 서로 통신해야하는 시스템들 사이의 데이터 전송을 제어할 필요성이 있어 프로토콜이 개발되었다.

References

<책> 그림으로 배우는 네트워크 원리