세션에 대한 질문을드립니다.

nayana의 이미지

업무적인 얘기를 하다가 세션에 대한 야그가 나왔는데....
tcp는 세션을 유지 시켜주고 udp는 세션이라는 개념이 없다고 하는데....맞다면 왜그런건가요...( 게시판 성격이 안맞으면 지우겠습니다.)

웃는 남자의 이미지

OSI 7 Layer 의 개념에 비추어 볼때 3-4 계층인 하위네트워크계층의 tcp/ip 프로토콜에 대하여
세션이라는 개념의 유무를 따지는 것은 의미가 없다고 봅니다.

아마 tcp - 연결지향성 udp-비연결지향성이라는 점에 대해 그렇게 판단하신게 아닌가 싶습니다.
tcp/ip 는 단순히 어떻게 패킷을 전달하는가라는 방식의 차이일 뿐이지 세션이라는 개념을 적용하기에 어렵겠네요.

그러면 세션의 연결이 유지되느냐 않느냐를 판단하려면 그보다 상위계층의 5-7계층인 어플리케이션 계층의 프로토콜에 대해서 따져보는게 옳겠죠

예를 들어 같은 tcp/ip 프로토콜을 기반으로 하는 두 프로토콜을 비교해본다면
아파치웹서버가 사용하는 http 프로토콜의 경우 세션이 없지요.
이점을 극복하기 위해서 쿠키등과 같은 기술이 사용되는 것이구요.
반대로 telnet 프로토콜은 세션이 유지된 상태에서 통신이 이루어집니다.

http 프로토콜은 연결이 필요할 때마다 프로세스가 생성되었다가 종료되어버리지만
telnet 프로토콜은 지속적으로 연결되어 있으므로 프로세스가 계속 유지됩니다.

----------------------------------------
Nothing left after Nirvana.

익명 사용자의 이미지

답변 감사합니다. 도움이 많이 되었습니다.

저의 개발자분중에 이런 말씀을 하시더라고요...
tcp:두 종단의 컴퓨터에서 하나의 Session이 형성되어 신뢰성을 보장하는 DataStream을 전송하는 프로토콜
udp : 비연결지향으로 DataGram을 전송하는 프로토콜이라고 합니다. 가만히 말을 들어보면 맞는말인것 같습니다. 근데 여기서 중요한것이 Session이 형성되어라는 말인데...이분의 말씀도 맞는 말인가요?

nayana의 이미지

한가지만 질문을 더 드리겠습니다.

Quote:
http 프로토콜은 연결이 필요할 때마다 프로세스가 생성되었다가 종료되어버리지만
telnet 프로토콜은 지속적으로 연결되어 있으므로 프로세스가 계속 유지됩니다

이부분에서 telnet 을 할때 일정시간 어떤 작업이 없으면 끊어지게되고 웹같은 경우는 일정시간이 지나도 계속 유지가 되던데..이것은 어떻게 되는건가요...http프로토콜의 프로세스가 계속 유지가 되는건 아닌가요?
alfalf의 이미지

HTTP의 경우 session이 필요할 경우 client에 암호화된 cookie 값 등을 저장하고 매 페이지 접속시마다 그 값을 이용하여 서버에서 해당 client를 확인하고 자료를 전송합니다. 그래서 TCP 접속은 매번 끊기지만 일관된 자료 전송을 유지할 수 있죠.

익명 사용자의 이미지

Anonymous wrote:
답변 감사합니다. 도움이 많이 되었습니다.

저의 개발자분중에 이런 말씀을 하시더라고요...
tcp:두 종단의 컴퓨터에서 하나의 Session이 형성되어 신뢰성을 보장하는 DataStream을 전송하는 프로토콜
udp : 비연결지향으로 DataGram을 전송하는 프로토콜이라고 합니다. 가만히 말을 들어보면 맞는말인것 같습니다. 근데 여기서 중요한것이 Session이 형성되어라는 말인데...이분의 말씀도 맞는 말인가요?

맞습니다.

sangheons의 이미지

TCP를 OSI 7계층과 비교해보자면 4계층뿐만 아니라 어느정도는 5~7계층의 기능도 가지고 있다고 봅니다. 비록 완전하지도 않고, OSI만큼 체계적인 것도 아닙니다만.

그런 관점에서 본다면 TCP가 어느정도 세션유지 기능을 사용하고 있다고 봐도 그리 틀리지는 않을 겁니다.

종단간의 신뢰성 있는 데이터 전달을 위해서 TCP는 여러가지 기법을 사용하죠.
Ack를 받고, 에러를 검사하고, drop/discard된 패킷을 재전송하고, 데이터의 순서를 보장하고, 또 한번 설정된 연결은 계속적으로 사용합니다.
이러한 기능들은 관점에 따라서는 '대화를 구성하고, 동기를 유지하는' 세션계층 역활의 일부분으로 해석될 여지가 충분하다고 생각합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.